AlarmManagerを使って一毎日同じ時刻に処理を行う
最終更新日:2015-09-05
AlarmManagerではset()
の代わりにsetRepeating()
を使うことで、繰り返しPendingIntentを実行することができます。
manager.setRepeating(AlarmManager.ELAPSED_REALTIME, 3000, AlarmManager.INTERVAL_DAY, pendingIntent);
第1引数と第2引数はset()
と同じです。詳細は次のエントリーをみてください。
第3引数には繰り返しの周期をミリ秒で指定します。よく使う値は定数として定義されています。
- INTERVAL_FIFTEEN_MINUTES : 15分
- INTERVAL_HALF_HOUR : 30分
- INTERVAL_HOUR : 1時間
- INTERVAL_HALF_DAY : 12時間
- INTERVAL_DAY : 1日
第4引数にはset()
と同様に、実行するPendingIntent
を指定します。
Android 4.4(API Level 19)より、OSのスケジューリングの関係でぴったりに実行されることはなくなっている点に注意しましょう。