[独習android]ブート時にサービスを起動するには

Posted November 23rd, 2010 in General. Tagged: , .

デバイスブート時にサービスを常駐させる方法。
ブート完了のイベントを受け取るBroadcastReceiverのサブクラスを作って、イベントを受け取ったときにサービスを起動するという流れ。

AndroidManifest.xml

    ...
    <!-- デバイスブート時のインテントを受け取る許可 -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <application android:icon="@drawable/icon" android:label="@string/app_name">
    	<service android:name=".MainService" />
    	<receiver android:name=".MainReceiver">
            <intent-filter>
            	<!-- デバイスブート時のインテントを受け取るレシーバ -->
            	<action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
    	</receiver>
    	...
    </application>
    ...

BroadcastReceiver

public class MainReceiver extends BroadcastReceiver {
	private final String TAG = "aZsleep";
	@Override
	public void onReceive(Context context, Intent intent) {
		Log.v(TAG, "onReceive called");
		// サービスを起動する(BOOT_COMPLETED時)
		context.startService(new Intent(context, MainService.class));
	}
}

関連情報

Posted November 23rd, 2010 in General. Tagged: , .

One comment:

  1. am broadcast -a android.intent.action.BOOT_COMPLETED
    とかするとインテントをシミュレートできるらしい。

    groundwalker:

track feed