0

アラーム受信機の受信メソッド内で20 秒のHandler Post Delayed Timer タスクを使用しました。アラーム受信機の受信メソッドが呼び出される前にアプリを終了すると、アプリは正常に動作します。Handler Post がスケジュールされた Timer タスクを遅らせたら、アプリを終了します。次に、アプリケーションを終了した後、Handler Post Delay Timer タスクが自動的にキャンセルされました。したがって、ポスト遅延タイマー タスクがアプリケーションで呼び出されることはありません。

コードスニペット:

Handler handler= new Handler();
handler.postDelayed(networkRunnable,
                10000);

/**
 * A runnable will be called after the 10 second interval
 */
Runnable networkRunnable= new Runnable() {
    @Override
    public void run() {
        // Called after 10 seconds
        cancelNetworkTask();
        // My Job to do after 10 seconds
    }
};

アプリを終了した後、次のアラーム受信機の受信メソッドが呼び出されると、タイマー タスクがスケジュールされ、正常に動作します。

Alarm Receiver on-receive メソッド内で goAsync() を試しました。したがって、これもこの問題の解決には役立ちません。アプリケーションを終了すると、スケジュールされたタイマー タスクがキャンセルされます。

スケジュールされたハンドラー ポスト遅延タイマー タスクを保持する方法は、アプリがアラーム レシーバーの受信メソッド内で終了したときに使用できます。

これについて私を助けてください。

4

1 に答える 1