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.
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.
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%Tags und Links android