アラームとか常駐アプリとか端末起動時にあれこれしたかった
素敵な記事があったので、自己理解のための備忘録
基本的に
ブロードキャストされるandroid.intent.action.BOOT_COMPLETED
を処理する感じらしい
やることは3つ
1. Recevierを作る
Recevierクラスはとってもシンプル
public class StartupReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // ここに起動時の処理を書く } }
これだけ。
あとはコメントの部分に
アプリを起動したり、Serviceを起動したり、AlarmManagerに登録したりする処理を書けばOK
2. AndroidManifest.xmlにpermissionを追加する
わすれやすいけど重要なこの一行
<manifest> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> ・・・ </manifest>
3. AndroidManifest.xmlにRecevierを追加する
こちらは、activityやserviceを追加するのと同じような感じで
<manifest> ・・・ <application> ・・・ <receiver android:name=".StartupReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application> </manifest>
adbから再起動をして確認する
なんと再起動しなくても、adbからBOOT_COMPLETEDを発生できるらしい!
すごいなadb
$ adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
以上!!