端末起動時にサービスを起動する方法

端末起動時にandroid.intent.action.BOOT_COMPLETEDが投げられるのでそのタイミングで設定する。

端末起動時に発行されるイベントを拾う→Service起動ってのが一般的*1。AndroidManufest.xmlに<receive>登録、RECEIVE_BOOT_COMPLETEDで制限解除。

正直、端末起動時に勝手にプログラムを起動させていいものか判断に悩むところだ。メモリがふんだんにあるわけもないのに、各々が起動時にメモリに滞在する状況って好ましくは無いだろう。電池だって勿体無い。仮にServiceにバグが生じた場合、再起動を繰り返す現象も見られるようだ。ますます電池が勿体無い。

なので、私の見解としましては常駐はあきらめるか、AccountManagerあたりから同期するのを待つ方向で対応したいんだが、面倒くさいんだよねw。


*1 Intent呼び出しも出来るがログイン画面からいきなりアプリケーションが起動する様は結構ビビるしGoogleとしてはオヌヌメしていない。ServiceからNotificationを利用せよ、という流れだと思った。

Last-modified: 2012.09.23 (日) 07:15:14 (4226d)