Android bindService oder / und startService

8

Ich möchte Service mit der Methode bindService erstellen. Aber wenn ich eine Aktivität schließe, ist mein Dienst zerstört, und das will ich nicht.

Ich versuche, den Dienst mit startForeground(NOTIFICATION_ID, notification); service onCreate in den Vordergrund zu stellen, aber der Dienst zerstört immer noch.

Jetzt versuche ich mit zwei Methoden, um den Dienst zur gleichen Zeit zu starten:

%Vor%

Durch Aufruf dieser beiden Methoden wird der Service nicht zerstört. Meine App funktioniert gut mit dieser Methode.

Kann mir jemand erklären, ob das ein guter Weg ist oder nicht? Kannst du mir bitte eine Idee geben, warum startForeground(NOTIFICATION_ID, notification); nicht funktioniert?

Was ist der beste Weg, um bindService zu verwenden, aber gleichzeitig möchte ich nicht, dass der Dienst selbst zerstört.

    
Jovan 11.09.2010, 01:47
quelle

2 Antworten

7

Ich habe die gleiche Lösung verwendet und sie ist legitim. Von Service ref:

  

Ein Service kann sowohl gestartet werden als auch haben   Verbindungen daran gebunden. In einem solchen   In diesem Fall behält das System den Service   so lange laufen, wie es ist   gestartet oder es gibt einen oder mehrere   Verbindungen zu ihm mit der   Context.BIND_AUTO_CREATE-Flag. Einmal   Keine dieser Situationen gilt, die   Die Methode onDestroy () des Dienstes wird aufgerufen   und der Service ist effektiv   beendet.

startForeground() funktioniert nicht, weil es nur versucht zu verhindern, dass der Dienst vom System getötet wird, aber sein Lebenszyklus ist eine andere Sache: Wenn nichts mehr an diesen Dienst gebunden ist und nicht gestartet wurde, stoppt er einfach.

    
bigstones 27.02.2011 14:21
quelle
0

Wenn Sie den Dienst mit startService () starten, wird es nicht zerstört. Versucht, einen Dienst zu starten, der IntentService erweitert und eine Schleife in onHandleIntent () hat. Wenn die Schleife beendet ist, wurde der Dienst zerstört und ist nicht mit der Beendigung der Aktivität verbunden. Der Benutzer kann die Anwendung schließen, der Dienst wird jedoch nicht beendet.

%Vor%     
Deepscorn 18.01.2014 17:57
quelle

Tags und Links