Nếu tôi có handler.postDelayed
luồng đã được thực hiện và tôi cần phải hủy nó?Làm thế nào để hủy handler.postDelayed?
Trả lời
Tôi thực hiện việc này để hủy bài đăngDelays, trên Android: removeCallbacks xóa mọi bài đăng đang chờ xử lý của Runnable r nằm trong hàng đợi thư.
handler.removeCallbacks(runnableRunner);
hoặc sử dụng để loại bỏ tất cả các thông điệp và callbacks
handler.removeCallbacksAndMessages(null);
Thông tin thêm với snipet: http://stackoverflow.com/questions/5885587/how-to-cancel-handler-in-code – Basher51
Nếu bạn không muốn giữ một tài liệu tham khảo của Runnable, bạn chỉ có thể gọi:
handler.removeCallbacksAndMessages(null);
The official documentation nói :
... Nếu mã thông báo là null, al l callbacks và tin nhắn sẽ được gỡ bỏ.
Tôi đã có một trường hợp mà tôi cần hủy một postDelayed trong khi nó đang trong quá trình chạy, vì vậy mã ở trên không hoạt động cho ví dụ của tôi. Những gì tôi đã kết thúc làm là có một kiểm tra boolean bên trong Runnable của tôi vì vậy khi mã được thực hiện sau thời gian nhất định nó sẽ hoặc là cháy dựa trên những gì giá trị boolean tại thời điểm đó và làm việc cho tôi.
public static Runnable getCountRunnable() {
if (countRunnable == null) {
countRunnable = new Runnable() {
@Override
public void run() {
if (hasCountStopped)
getToast("The count has stopped");
}
};
}
return countRunnable;
}
FYI - trong hoạt động phá hủy Tôi sử dụng mã do các nhà phát triển khác, handler.removecallback và handler = null đề xuất; để hủy bỏ các xử lý chỉ để giữ cho mã sạch sẽ và chắc chắn rằng tất cả mọi thứ sẽ được gỡ bỏ.
- 1. hủy quy trình handler.postdelayed
- 2. Handler.postAtTime vs Handler.postDelayed
- 3. Làm thế nào để hủy bỏ NSBlockOperation
- 4. Làm cách nào để hủy/hủy yêu cầu jQuery AJAX?
- 5. Làm thế nào để hủy bỏ một jquery.load()?
- 6. Làm thế nào để hủy bỏ BroadcastReceiver trong android
- 7. Làm thế nào để hủy bỏ một UIWebView?
- 8. Làm thế nào để phá hủy đúng trường hợp CKEditor?
- 9. Làm thế nào để hủy chờ trong select() trên Windows
- 10. Làm thế nào để hủy Files.copy() trong Java?
- 11. iPhone làm thế nào để hủy bỏ stop performSelector
- 12. Làm thế nào để hủy USSD cần đáp ứng
- 13. Làm thế nào để AppDomain.Unload() hủy bỏ các chủ đề?
- 14. Làm thế nào để phá hủy một datatable?
- 15. Làm thế nào để hủy bỏ một quá trình PHP, khi cuộc gọi ajax bị hủy?
- 16. Làm thế nào để dừng Handler Runnable?
- 17. Làm thế nào hủy bỏ việc thực hiện một SwingWorker?
- 18. Làm cách nào để bạn hủy/hủy yêu cầu bằng thư viện js mẫu?
- 19. Làm thế nào để hủy bỏ ngay lập tức một BackgroundWorker làm việc?
- 20. Làm thế nào để viết trình kích hoạt để hủy bỏ xóa trong MYSQL?
- 21. Làm thế nào để bạn viết một nhiệm vụ MSBuild để hỗ trợ hủy bỏ?
- 22. Làm cách nào để 'xác thực' khi hủy đường ray
- 23. Tôi làm cách nào để hủy bỏ phiên bản xóa?
- 24. Làm cách nào để hủy bỏ Báo cáo tinh thể
- 25. Làm cách nào để hủy liên kết dự án?
- 26. Làm cách nào để hủy hợp nhất hg?
- 27. Làm cách nào để hủy yêu cầu cam kết?
- 28. Làm cách nào để tạo nút hủy trong simple_form?
- 29. Làm cách nào để kích hoạt nút hủy trong UISearchBar?
- 30. Làm cách nào để hủy sự kiện bubbling trong ASP.net?
Toàn bộ chuỗi hoặc chỉ thư? –
Toàn bộ chuỗi. – Eugene
[Thoát] (http://developer.android.com/reference/android/os/HandlerThread.html#quit()). –