2013-11-09 9 views
5

Ich habe diese Frage über Dienste in Android, und wie man sofortigen Neustart des Dienstes verhindert, wenn die Aktivität im Task-Manager weggefegt wird (wenn Sie die Home-Taste gedrückt halten).Wie verhindert man, dass der Dienst neu gestartet wird, nachdem die Aktivität vom Task-Switcher übernommen wurde?

Ich möchte ein Service hartnäckig sein und haben einen eigenen Prozess und Speicherbild ist, so dass, wenn meine Tätigkeit Shut Down, in diesem Fall von Task Switcher weggefegt, der Dienst nicht neu starten ...

Could jemand zeigen mir einige Tutorials und Websites erklären, wie dieses Problem zu lösen?

Antwort

0

Setzen Sie Ihren Dienst in einem separaten Prozess wie folgt:

Gehen Sie zu Ihrem Service Erklärung im Android Manifest und ändern Sie es zu:

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

HINWEIS:

Da Ihr Dienst in einem separaten ausgeführt wird Sie müssen die Prozesse in Ihrem LogCat (bei Verwendung von Android Studio) wechseln, um Ihre Debug-Protokolle anzuzeigen.

0

Servcices im Hintergrund neu zu starten, sind so ausgelegt, wenn sie zerstört werden (dies ist eine allgemeine Aussage, es gibt viele Faktoren sind), so dass dies nicht geschehen, um sicherzustellen, ist:

Entweder eine bound service erstellen, die erstellt wird und zerstört mit die anrufende Aktivität:

Dieses Beispiel aus der Dokumentation genommen

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; 
    } 
} 

oder den Dienst in den foreground laufen, so dass, wenn es wird aus dem Vordergrund entfernt, es ist zerstört.