2012-06-23 15 views
5

Potrzebuję ZAWSZE usługi w tle, która zsynchronizuje moją aplikację Android i serwer. Wiem, jak uruchomić go za pośrednictwem mojej aplikacji, ale gdy Android się wyłączy, usługa w tle zginie.Uruchamianie usługi w tle po włączeniu Androida

Jak mogę zrobić, aby usługa w tle zawsze działała? (Nawet gdy urządzenie się wyłącza, a następnie włącza ...)

Muszę dodać do uruchomionych programów systemu Android moją usługę tła. Jakieś wskazówki?

Odpowiedz

15

korzystanie <action android:name="android.intent.action.BOOT_COMPLETED" /> rozpoczęcia swoje usługi, gdy urządzenie się włączy.

W AndroidManifest.xml:

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

dodawania pozwolenie na swój AndroidManifest.xml jak:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"> 
</uses-permission> 

częściowo kod 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: jeśli mówimy o urządzeniu włącz/wyłącz ekran, musisz zarejestrować <action android:name="android.intent.action.USER_PRESENT" /> i <action android:name="android.intent.action.SCREEN_ON" />, aby rozpocząć korzystanie z usługi, gdy użytkownik jest obecny lub ekran jest włączony.

+0

Po włączeniu telefonu komórkowego pojawia się błąd ... "Aplikacja została zmuszona do ...". To nie działa. – Frion3L

+0

Który błąd otrzymujesz może edytować swój wpis z błędem? –

Powiązane problemy