Ai đó có thể giải thích lý do tại sao Trình xử lý đăng tải một lần chạy? Không ghi đè handleMessage và gửi một tin nhắn làm điều tương tự?Android: Tại sao các Trình xử lý đăng một lần chạy?
Tôi đã viết một số mã chưa được kiểm tra để cho biết cách tôi nghĩ hai cách này sẽ được triển khai như thế nào. Xin vui lòng sửa tôi nếu tôi sai trong cách tiếp cận của tôi.
Handler với bài viết:
handler.post(new Runnable() {
@Override
public void run() {
imageView.doSomething();
}
});
Handler với handleMessage:
final Handler handler = new Handler() {
@Override
public void handleMessage(Message message) {
imageView.doSomething();
}
};
handler.sendMessage(message);
Vâng, có hiệu suất rất nhỏ để tạo đối tượng mới (runnable). Nhưng nó không đáng kể. – eordano
Tuy nhiên, nếu bạn muốn thực thi mã trên Giao diện người dùng, bạn phải tạo Trình xử lý trong Chủ đề giao diện người dùng hoặc sử dụng "Trình xử lý mới (Looper.getMainLooper())". Với "trình xử lý mới()", bạn tạo một Trình xử lý trong luồng hiện tại, không cần phải là chủ đề chính. – Kuno