handler.postDelayed(new Runnable() {
public void run() {
if (MainTab.isRunning == true)
;
{
Dialog.show();
}
}
}, Sec * 1000);
isRunning是一个变量,在我的活动中,无论何时调用onStop或onPause方法,它都变为false。然而它不起作用,即使我关闭我的应用程序Dialog仍然想要添加一个窗口,我收到错误。
答案 0 :(得分:1)
删除额外的;
:
handler.postDelayed(new Runnable() {
public void run() {
if (MainTab.isRunning == true)
{
Dialog.show();
}
}
}, Sec * 1000);
它会导致你的if语句变得无用,因为它指示java将下一行解释为新指令,而不是if语句的一部分。
答案 1 :(得分:0)
即使现在什么都不做,你的回调仍会执行,这是不必要的。您应该在onPause()
中使用removeCallbacksAndMessages()
取消回调:
handler.removeCallbacksAndMessages(null);
或保存对runnable的引用并致电handler.removeCallback(runnable)
。