【Android】指定時間に処理を実行する【AlarmManager】
アラームを鳴らしたり、ある時間にアプリを起動したり、ローカルのPUSH通知を表示したりと指定時間に処理を実行したいときがあると思います。
開発中のアプリにローカル通知を表示するために実装したのでその方法です。
流れ
・AlarmManagerにアラームを登録
↓
・指定時間にIntentが飛ぶ
↓
・BroadcastReceiverで受信し、処理を実行
実装
NotificationUtil.java
自分のアプリでは通知に使用したので、NotificationUtilといったクラス名になっています。
・setLocalNotification(Context context, String message, int requestCode, int interval)AlarmManagerにアラームを登録します。
message : 通知で表示するメッセージ
requestCode : 登録したアラームを見分けるためのタグのようなもの
interval : 通知を表示する時間
・cancelLocalNotification(Context context, int requestCode)
登録したアラームを削除します。
requestCodeは登録したときと同じ数値を指定します。
NotificationReceiver.java
指定時間に上記のNotificationReceiverクラスのonReceiveメソッドが呼ばれます。
このメソッド内で実行したい処理を記述します。
例ではアラームを登録した際に設定したメッセージをトーストで表示しています。
AndroidManifest.xml
AndroidManifest.xmlのapplicationタグ内にレシーバーを追加する必要があります。
以上です。