アラーム受信機の受信メソッド内で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() を試しました。したがって、これもこの問題の解決には役立ちません。アプリケーションを終了すると、スケジュールされたタイマー タスクがキャンセルされます。
スケジュールされたハンドラー ポスト遅延タイマー タスクを保持する方法は、アプリがアラーム レシーバーの受信メソッド内で終了したときに使用できます。
これについて私を助けてください。