今回は端末起動時にサービスを起動する方法です。
といっても、端末起動時に何かやりたい場合、概ねこの方法が使えると思います。
大まかな手順は以下のような感じです。
      - Service作成
- BroadcastReceiver作成
- AndroidManifest.xmlへService登録
- AndroidManifest.xmlへBroadcastReceiver登録
- AndroidManifest.xmlへパーミッション設定
(1)Service作成
                      | 1 | packagecom.sample.bootup; | 
                     | 3 | importandroid.app.Service; | 
                   | 4 | importandroid.content.Intent; | 
                   | 5 | importandroid.os.IBinder; | 
                     | 7 | publicclassBootupService extendsService { | 
                       | 10 |     publicIBinder onBind(Intent arg0) { | 
           (2)BroadcastReceiver作成
ここで起動時にサービスを起動します。
ネットに通信してデータを取ってくるなど、端末起動時に何かしたい場合はOnReceiveに処理を記述します。
                      | 1 | packagecom.sample.bootup; | 
                     | 3 | importandroid.content.BroadcastReceiver; | 
                   | 4 | importandroid.content.Context; | 
                   | 5 | importandroid.content.Intent; | 
                     | 7 | publicclassBootReceiver extendsBroadcastReceiver { | 
                     | 9 |     publicvoidonReceive(Context context, Intent arg1)   { | 
                     | 11 |         Intent intent = newIntent(context, BootupService.class);  | 
                   | 12 |         context.startService(intent);  | 
         (3)AndroidManifest.xmlへService登録
淡々と設定します。

  (4)AndroidManifest.xmlへBroadcastReceiver登録
こちらも淡々と設定します。

  (5)AndroidManifest.xmlへパーミッション設定
android.permission.RECEIVE_BOOT_COMPLETEDのパーミッションを設定しないといくら頑張って実装してもも起動時に通知を受け取ることができません。
何気に忘れやすいので注意です。

  以上です。
  (補足)BOOT_COMPLETEDが配信されない場合は、この記事も確認してみてください
 
0 件のコメント:
コメントを投稿