2013-11-09 23 views
5

Ho questa domanda sui servizi in Android e su come impedire il riavvio immediato del servizio se l'attività viene spazzata via in Task Manager (quando si tiene premuto il pulsante home).Come impedire il riavvio del servizio dopo che l'attività è stata spostata dal commutatore di attività?

voglio un servizio per essere persistente e avere è immagine della memoria proprio processo e, in modo che quando la mia attività di intercettazione, in questo caso, spazzato via dalla task switcher, il servizio non sarà riavviato ...

Could qualcuno mi mostra alcuni tutorial e siti che spiegano come risolvere questo problema?

risposta

0

Metti la tua servizio in un processo separato come segue:

Vai alla tua dichiarazione di servizio nel manifesto Android e modificarla in:

<service android:name=".ServiceName" 
 
     android:process=":remote" />

NOTA:

Poiché il servizio è in esecuzione separatamente elaborare è necessario passare i processi nel LogCat (se si utilizza Android Studio) per visualizzare i registri di debug.

0

Servcices sono progettati per riavviare in background quando distrutta (questa è una dichiarazione ampia, ci sono molti fattori), in modo per garantire ciò non accada:

creare una bound service che viene creato e distrutto con l'attività di chiamata:

Questo esempio è tratto dalla documentazione

public class LocalService extends Service { 
    private final IBinder mBinder = new LocalBinder(); 

    public class LocalBinder extends Binder { 
     LocalService getService() { 
      return LocalService.this; 
     } 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     return mBinder; 
    } 
} 

o eseguire il servizio nel foreground, in modo che quando viene rimosso dal primo piano e viene distrutto.