2012-09-26 35 views
13

Trong Android chúng tôi có 2 cách để thiết lập một sự kiện onClick cho một buttom (hoặc bất kỳ quan điểm khác tôi nghĩ):Mà Một là hiệu suất tốt hơn khôn ngoan: setOnClickListener VS android: onclick = "onClick"

Kịch bản một (lập trình):

Button b = (Button) findViewById(R.id.mybutton); 
b.setOnClickListener(this); 

Kịch bản hai (trong file XML):

<Button android:onClick="handler" /> 

là lại bất kỳ hình phạt hiệu suất để làm điều này trong XML hoặc lập trình hoặc là nó giống nhau không?

+0

Tôi không phải là một chuyên gia trong bất kỳ cách nào, nhưng tôi sẽ nói cách lập trình là tốt hơn trong hiệu suất ... về cơ bản là như nhau, nhưng theo cách XML bạn thêm một bước, tôi nghĩ, một trong đó là XML được phân tích cú pháp. nhưng tôi có thể sai, tôi chỉ đang suy đoán. – Fustigador

+0

Tôi không nghĩ rằng nó tạo ra sự khác biệt đáng kể. Nếu bạn đang gặp phải các vấn đề hiệu suất không phải là cách để giải quyết chúng. Tôi đoán rằng nếu bạn đang sử dụng nhiều Nút để tạo sự khác biệt thì vấn đề thực sự là bố cục của bạn. – IchBinKeinBaum

Trả lời

1

Cả hai đều giống nhau về hiệu suất. Xml được phân tích cú pháp trước thành mã nhị phân trong khi biên dịch. do đó, không có quá nhiều đầu trong Xml.

0

Cách duy nhất để biết là thông qua kiểm tra đơn vị .. Nó hoàn toàn phụ thuộc vào cách nó được xử lý bên dưới ... Nếu tôi không đoán nó đúng, tuyên bố nó trong xml có thể chậm hơn một chút vì xml cần phải được phân tích cú pháp và sau đó phương pháp nên được gọi là .. Vẫn không thể chắc chắn, nó là một lựa chọn thiết kế hệ điều hành android thuần túy

+0

Bạn có thể đúng, nhưng việc chuẩn bị chỉ được thực hiện một lần vào thời gian tính toán. Khi ứng dụng được xuất bản dưới dạng APK, nó đã là mã nhị phân. –

Các vấn đề liên quan