Android AlarmManager 5 システムブロードキャスト

AndroidのAlarmManagerの最後の記事
AlarmManagerを使用した時は、システムの時刻が変更された時に通知されるブロードキャストにも注意する必要がある。

特にAlarmManager#setを使用している場合は、Android Phoneの時刻がユーザもしくはシステムにより変更が加わった場合は再設定をする必要がある。
(AlarmManager#setRepeatを使用していても、ロジックによっては必要となるでしょう)

投げられるブロードキャスト

  • android.intent.action.TIME_SET ユーザにより時刻が変更になった時
  • android.intent.action.TIMEZONE_CHANGED ユーザによりタイムゾーンが変更になった時

先日の記事に書いた、BOOT_COMPLETEDの記載も含めAlarmManagerを使用したときは、以下のような定型的な記述をManufestファイルに追加することになります。

<receiver android:name=".ReceiverInitAlarm"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /><action android:name="android.intent.action.TIME_SET" /><action android:name="android.intent.action.TIMEZONE_CHANGED" /></intent-filter></receiver>

私の場合は上記のように記載して、ReceverInitAlarmという名前のBroadcastReciverにて、ブロードキャストタイプを調べ分岐して処理を行っています。

ブログ内の関連する記事


コメント

このブログの人気の投稿

島へ移住の話【炊飯】

ドローンプログラミング体験教室を伊豆大島の小学校でしてきました

情報処理安全確保支援士登録証のカード型が届きました。