寫 Android 多執行緒的程式時,我最常使用的是 Thread-Handler 架構。某天遇到了一個情形:在特定時間點清空 message queue,讓 Handler 都不處理還留著的 event。有一個方法可以做到,就是 removeCallbacksAndMessages。API 說明如下:
public final void removeCallbacksAndMessages (Object token)
Added in API level 1
Remove any pending posts of callbacks and sent messages whose obj is token. If token is null, all callbacks and messages will be removed.
因此,我們只要使用 handler.removeCallbacksAndMessages(null),就可以讓 Handler 不處理還 queue 住的 event。
留言
張貼留言