Android AlarmManager 4 アラームが消えるとき

AndroidのAlarmManagerでは、以下の時設定したアラームが自動的にクリアされる。

  1. アプリケーションがアンインストールされた時
  2. アプリケーションがバージョンアップインストールされた時
  3. 電源オフされたとき

上記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ドキュメントにも書かれているように、なるべく再設定を行わないのが望ましい。

ブログ内の関連する記事


コメント

このブログの人気の投稿

島へ移住の話【炊飯】

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

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