mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mHandler.removeCallbacksAndMessages(null);
}
}, 500);
mHandler.removeCallbacksAndMessages(null); 用来移除所有消息,
但是用handler.postdelayed 无效,
是用TimerTask 或者 Thread 来控制时 是可以生效的。
请问因为什么原因导致无效的呢?
removeCallbacksAndMessages(null)的作用是什麼嗎?
如果參數為null的話,會將所有的Callbacks和Messages全部清除掉。
你在看原始碼,Message的建構子是空,what為0,還沒執行, 也會被刪除掉。
請問到底怎麼無效了,是
mHandler.removeCallbacksAndMessages(null);
沒有執行?感覺延遲500後,remove掉自己這個runnable有些奇怪。
可以試試這個