Android 如何取消handler.postDelayed?

Android 如何取消handler.postDelayed?,android,Android,如果我的handler.postDelayed线程已经在执行中,我需要取消它怎么办?我这样做是为了取消postDelays,根据Android:删除消息队列中所有挂起的Runnable r帖子 handler.removeCallbacks(runnableRunner); 或用于删除所有消息和回调 handler.removeCallbacksAndMessages(null); 如果不想保留runnable的引用,只需调用: handler.removeCallbacksAndMessa

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

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

handler.removeCallbacks(runnableRunner);
或用于删除所有消息和回调

handler.removeCallbacksAndMessages(null);

如果不想保留runnable的引用,只需调用:

handler.removeCallbacksAndMessages(null);
说:

。。。如果令牌为null,则将删除所有回调和消息


我有一个实例,在运行过程中需要取消postDelayed,因此上面的代码对我的示例不起作用。我最后做的是在Runnable中进行布尔检查,因此,当代码在给定时间后执行时,它会根据当时的布尔值触发,并且对我有效

 public static Runnable getCountRunnable() {
    if (countRunnable == null) {
        countRunnable = new Runnable() {
            @Override
            public void run() {
                if (hasCountStopped)
                    getToast("The count has stopped");
            }
        };
    }
    return countRunnable;
}

仅供参考-在我的活动中,我确实使用了其他开发人员建议的代码,handler.removecallback和handler=null;取消句柄只是为了保持代码干净并确保所有内容都将被删除。

整个线程还是消息?可能与snipet复制更多信息: