如何取消handler.postDelayed?

Eug*_*ene 57 android

如果我的handler.postDelayed线程已经执行并且我需要取消它怎么办?

JPM*_*JPM 78

我这样做是为了取消postDelays,根据Android:removeCallbacks删除消息队列中Runnable r的所有待处理帖子.

handler.removeCallbacks(runnableRunner);
Run Code Online (Sandbox Code Playgroud)

或用于删除所有消息和回调

handler.removeCallbacksAndMessages(null);
Run Code Online (Sandbox Code Playgroud)


Abd*_*ady 14

如果你不想保留runnable的引用,你可以简单地调用:

handler.removeCallbacksAndMessages(null);
Run Code Online (Sandbox Code Playgroud)

官方文件说:

...如果token为null,则将删除所有回调和消息.