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 に答える