0
handler.postDelayed(new Runnable() {
            public void run() {
                if (MainTab.isRunning == true)
                    ;
                {
                    Dialog.show();
                }
            }
        }, Sec * 1000);

isRunning 是一个变量,在我的活动中,只要它调用 onStop 或 onPause 方法,它就会变为 false。但是它不起作用,即使我关闭我的应用程序对话框仍然想添加一个窗口并且我收到错误。

4

2 回答 2

1

删除多余的;

handler.postDelayed(new Runnable() {
            public void run() {
                if (MainTab.isRunning == true)
                {
                    Dialog.show();
                }
            }
        }, Sec * 1000);

它会导致您的 if 语句变得无用,因为它指示 java 将下一行解释为新指令,而不是 if 语句的一部分。

于 2012-12-13T18:51:37.140 回答
0

即使它现在什么也不做,你的回调仍然会执行,这是不必要的。您应该使用removeCallbacksAndMessages()in取消回调onPause()

handler.removeCallbacksAndMessages(null);

或者保存对您的可运行文件的引用并调用handler.removeCallback(runnable).

于 2012-12-13T18:54:58.507 回答