繰り返し、サービスを起動する方法に、AlarmManager,PendingIntentを使いますが、電源オフ後、電源オンした際にサービスが起動しなくなります。
それを解消する方法として、「Intent.ACTION_BOOT_COMPLETED」をAndroid Manufest.xmlと、BroadcastRecieverに書きますが、うまく動かないように感じることがあります。
通常、電源オン時に再度サービスを起動する処理は直ぐに行われるものと思いがちですが、実際HT-03Aでいろんなアプリ入った端末で測定したところ、
■1回目計測
電源ON時刻 10:42:57 .422
Intent.ACTION_BOOT_COMPLETEDの発行時刻 10:46:17 .352
■2回目計測
電源ON時刻 10:49
Intent.ACTION_BOOT_COMPLETEDの発行時刻 10:52
(秒数以下、メモし忘れました)
これを平均すると、電源オンから3~5分程度経ってから、Intent.ACTION_BOOT_COMPLETEDを受けて処理を行うことができます。
という前提をもって、サービスを設計したほうがよさそうです。
起動後すぐに処理されると思っていた私は原因がわからず結構ハマリました。
短気は損気ということで、気長に構えたいと思います。