Android AlarmManager 4 アラームが消えるとき
AndroidのAlarmManagerでは、以下の時設定したアラームが自動的にクリアされる。
- アプリケーションがアンインストールされた時
- アプリケーションがバージョンアップインストールされた時
- 電源オフされたとき
上記3点についての調査結果
アプリケーションがアンインストールされた時
この時は、AlarmManagerがアンインストールを自動的に検知し、以後ブロードキャストやサービスの呼び出しを行わない
特に問題なし
アプリケーションがバージョンアップインストールされた時
この時もAlarmManagerにより自動的にアラーム設定が消えてしまうが、ユーザにとっては、アプリケーションの使用を継続するにも関わらず、設定が消えてしまうという問題が発生する。
色々調査を行ったが、この問題は現在解決できない。
電源をオフにした時
電源をオフにしたときもアラーム設定が消えてしまう。
電源オフ – 電源オンにしたときに自動的に再度アラームを設定するには、システムから投げられる、Intent.ACTION_BOOT_COMPLETEDのブロードキャストを受け取ることで処理を行う。
public class AlarmInitReceiver extends BroadcastReceiver {/*** Sets alarm on ACTION_BOOT_COMPLETED.*/@Overridepublic void onReceive(Context context, Intent intent) {if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {//ここでアラームの再セットを行う}}}
注意点としては、PCとは異なり、携帯電話で電源をOFFにするということはあまりないということである。
Androidで電源をオフにする時は、何か問題が発生した(何かのソフトウェアがハングした、Androidの動作がもっさりとした)時が考えられる。再起動をした時に自動的に再設定をしてしまうのは、便利なのか、お節介なのか、判断が分かれるところである。
ソフトウェアの性質にもよるが、SDKドキュメントにも書かれているように、なるべく再設定を行わないのが望ましい。
ブログ内の関連する記事
- AlarmManager 1 Android でCronみたいなことをするには
- AlarmManager 2 定期的な感覚で繰り返し処理をするプログラム
- Android AlarmManager 3 サービスでの受け取り
- Android AlarmManager 4 アラームが消えるとき
- Android AlarmManager 5 システムブロードキャスト
コメント
コメントを投稿