2012-06-23 21 views
5

私はAndroidアプリケーションとサーバーを同期させるバックグラウンドサービスを常に持っている必要があります。私は自分のアプリケーションから起動する方法を知っていますが、Androidがオフになると、バックグラウンドサービスは終了します。Android起動時のバックグラウンドサービスの開始

バックグラウンドサービスを常に稼働させ続けるにはどうすればよいですか? (デバイスがオフになってからオンになっても)

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

答えて

15

デバイスがオンになったときに、あなたのサービスを開始するため<action android:name="android.intent.action.BOOT_COMPLETED" />を使用しています。 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); 
     } 
    }  
} 

EDIT:あなたはデバイスについて話している場合、あなたはAndroidManifest.xmlとして

<receiver android:name=".BootBroadcastReceiver" > 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 

追加許可画面のオン/オフを切り替えるには、ユーザーがいるか画面がオンの場合にサービスを開始するために<action android:name="android.intent.action.USER_PRESENT" /><action android:name="android.intent.action.SCREEN_ON" />を登録する必要があります。

+0

モバイルをオンにするとエラーが発生します... "アプリを強制的に..."。それは動作していません。 – Frion3L

+0

あなたはエラーが発生したあなたの投稿を編集できますか? –

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/

関連する問題