Android アプリケーションとサーバーを同期するバックグラウンド サービスが常に必要です。アプリケーションから起動する方法は知っていますが、Android がオフになるとバックグラウンド サービスが停止します。
バックグラウンド サービスを常に実行し続けるにはどうすればよいですか? (デバイスの電源がオフになってからオンになる場合でも...)
Android の開始プログラムにバックグラウンド サービスを追加する必要があります。ヒントはありますか?
Android アプリケーションとサーバーを同期するバックグラウンド サービスが常に必要です。アプリケーションから起動する方法は知っていますが、Android がオフになるとバックグラウンド サービスが停止します。
バックグラウンド サービスを常に実行し続けるにはどうすればよいですか? (デバイスの電源がオフになってからオンになる場合でも...)
Android の開始プログラムにバックグラウンド サービスを追加する必要があります。ヒントはありますか?
<action android:name="android.intent.action.BOOT_COMPLETED" />
デバイスの電源がオンになったときにサービスを開始するために使用 します。
でAndroidManifest.xml
:
<receiver android:name=".BootBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
次のように許可を追加しますAndroidManifest.xml
。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED">
</uses-permission>
コード部分BootBroadcastReceiver
:
public class BootBroadcastReceiver extends BroadcastReceiver {
static final String ACTION = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
// BOOT_COMPLETED” start Service
if (intent.getAction().equals(ACTION)) {
//Service
Intent serviceIntent = new Intent(context, StartOnBootService.class);
context.startService(serviceIntent);
}
}
}
編集:デバイス画面のオン/オフについて話している場合は、ユーザーが存在するか画面がオンになっているときにサービスを開始するため<action android:name="android.intent.action.USER_PRESENT" />
に登録する必要があります。<action android:name="android.intent.action.SCREEN_ON" />
(Even when the device turns off and then turns on..
OS は、起動が完了すると ACTION_BOOT_COMPLETED をブロードキャストします。アプリは、マニフェストで許可を要求することにより、この通知を受け取るように要求できます。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED">
</uses-permission>
http://blog.gregfiumara.com/archives/82
http://www.androidcompetencycenter.com/2009/06/start-service-at-boot/