再起動時にアラームを再セットする


Pocket

Androidで定期実行処理を端末ブートした時に再設定するやり方メモです。

AlarmManagerにスケジュールしたPendingIntentは、端末ブート時にクリアされていまいます。
なので、定時処理をさせたい場合はブート後に再度スケジュールしてあげる必要があります。

 

リブート時にアラーム再設定するやり方

端末ブート時にはACTION_BOOT_COMPLETEDがブロードキャストされます。
なので、こいつを受け取るブロードキャストレシーバーを用意して、その中で再スケジュールしてあげればOKです。

public class BootBroadcastReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Cntext context, Intent intent) {
    if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction()) {
      // アラーム設定処理
    }
  }

}

あと、AndroidManifest.xmlにパーミッション設定を追加します。

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

以上です。

 

あとがき

起動時のアラームスケジューリング方法については、これでOK。
アラーム再設定のタイミングとしては、起動時以外にも
・インストール時
・バージョンアップ時
・端末時間の変更、ロケール設定の変更時
などが考えられますが、これも受け取るアクションを変えるだけで、基本的には上記方法で実現できます。

ではでは~
 
 

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>