8

Android アプリケーションとサーバーを同期するバックグラウンド サービスが常に必要です。アプリケーションから起動する方法は知っていますが、Android がオフになるとバックグラウンド サービスが停止します。

バックグラウンド サービスを常に実行し続けるにはどうすればよいですか? (デバイスの電源がオフになってからオンになる場合でも...)

Android の開始プログラムにバックグラウンド サービスを追加する必要があります。ヒントはありますか?

4

2 に答える 2

22

<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" />

于 2012-06-23T10:50:40.283 に答える
3
(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/

于 2012-06-23T10:49:50.577 に答える