私のアプリは、ユーザがボタンをクリックしてから12または24時間後にmyAction()
を実行する必要があります。Android - AlarmManagerまたはTimerTask/Timerはx時間の時間内にアクションを実行しますか?
は、long
引数が実際の時刻ではなく、uptimeに基づいているため、使用できません。
だから私は、私はちょうどTimerTask/TimerまたはAlarmManagerが残っていますと思いますが、私は最も適切であろうこれらのかわからないんだけど - プラス、私はそれが信頼できないだと言って、TimerTaskを/タイマーについて悪い多くのコメントを聞きますなど
また、デバイスが再起動された場合、デバイスがまだ使用されていないかのように(またはできるだけ早く)実行される必要がある場合は、まだmyAction()
が必要ですオフになっています。この要件では、myAction()
の詳細をデータベースに格納してから、デバイスの再起動時にBootReceiverを呼び出して実行するよう呼び出す必要があるかもしれませんが、これを処理できるクラスがあればいいでしょう。
したがって、12/24時間後にmyAction()
を呼び出す適切で信頼できる方法は、デバイスの再起動に対応しますか?
」私はTimerTask/Timerに関する多くの悪いコメントを聞いて、それは信頼できないと言っています。 " - あなたのプロセスはそれほど長く続くと仮定しています。フォアグラウンドサービスでない限り、それは起こりそうもなく、明白な理由がない限り、ユーザーを苛立たせる傾向があります。そして、たとえそれが前景サービスであっても、あなたのプロセスがそれほど長く生き続けるという保証はありませんが、それは可能性が高いです。一般的に、目覚まし時計のシナリオ以外の特定の時間にバックグラウンドの仕事をしようとすると、進行中のバックグラウンド処理の戦争を考えると、かなり悪化するでしょう。 – CommonsWare