取消handler.postdelayed进程

我正在使用
handler.postDelayed()
在我的应用程序的下一阶段发生之前创建一个等待期。在等待期间,我显示一个带有进度条和取消按钮的对话框。 我的问题是我找不到在时间流逝之前取消postDelayed任务的方法。     
已邀请:
我这样做是为了发布延迟的runnable:
myHandler.postDelayed(myRunnable, SPLASH_DISPLAY_LENGTH); 
这要删除它:
myHandler.removeCallbacks(myRunnable);
    
如果你有多个内部/匿名runnables传递给同一个处理程序,并且你想在相同的事件使用时取消所有
handler.removeCallbacksAndMessages(null);
  根据文件,      删除任何待处理的回调帖子并发送其obj为的消息   令牌。如果token为null,则将删除所有回调和消息。     
另一种方法是处理Runnable本身:
Runnable r = new Runnable {
    public void run() {
        if (booleanCancelMember != false) {
            //do what you need
        }
    }
}
    
当我通过一个布尔值处理它来延迟runnable的帖子中调用CancelCallBacks(this)时,它对我有用
Runnable runnable = new Runnable(){
    @Override
    public void run() {
        Log.e("HANDLER", "run: Outside Runnable");
        if (IsRecording) {
            Log.e("HANDLER", "run: Runnable");
            handler.postDelayed(this, 2000);
        }else{
            handler.removeCallbacks(this);
        }
    }
};
    
希望这个要点帮助https://gist.github.com/imammubin/a587192982ff8db221da14d094df6fb4 MainActivity as Screen Launcher with handler& runnable函数,Runnable运行到登录页面或feed页面,其中基本首选项登录用户使用firebase。     

要回复问题请先登录注册