Wenn ein Dienst beendet wurde, wie kann er automatisch neu gestartet werden?Wie wird ein getöteter Dienst automatisch neu gestartet?
manchmal sogar ohne onDestroy()
Wenn ein Dienst beendet wurde, wie kann er automatisch neu gestartet werden?Wie wird ein getöteter Dienst automatisch neu gestartet?
manchmal sogar ohne onDestroy()
Aufruf Wenn Sie Ihren Dienst getötet haben, wird das System versuchen Sie es später erneut zu starten. Lesen Sie more.
Überschreibt die onStartCommand()
und geben Sie START_STICKY
oder START_REDELIVER_INTENT
(abhängig von Ihren Bedürfnissen) als Rückgabewert. Das System wird dann sicherstellen, dass Ihr Dienst neu gestartet wird, bis Sie den Dienst explizit beenden.
http://developer.android.com/reference/android/app/Service.html#START_REDELIVER_INTENT
http://developer.android.com/reference/android/app/Service.html#START_STICKY
Ich mache START_STICKY. funktioniert gut in nexus 5 und startet den Dienst neu. Aber im xiaomi-Dienst wird getötet, sobald meine Anwendung beendet wird. – Abhi
erbte ich eine IntentService, also musste ich sanft. Es funktionierte für mich, wenn ich onStartCommand overrode(), aber
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
Das heißt, lassen die Eltern tun, was es sein sollte und zurück START_STICKY.
Ich mache das gleiche. funktioniert gut in nexus 5. Aber in xiaomi Service wird getötet, sobald meine Anwendung tötet. – Abhi
In schlechten Fällen können Sie einen Wecker starten, um sicherzustellen, dass Ihr Dienst live ist. Achten Sie darauf, es zu oft zu benutzen, da das Aufwachen der CPU die Lebensdauer der Batterie kostet. Haben Sie eine App, die wiederbelebt, um zu entlassen? – Meymann
Wenn Ihr Dienst beendet wurde, liegt das daran, dass entweder der Benutzer den Dienst beendet hat oder das Betriebssystem zu wenig Arbeitsspeicher hatte. Das bedeutet, dass Sie es wahrscheinlich nicht neu starten sollten. Du solltest keine lang laufenden Dienste wie diese lassen – Falmarri
danke für die Antwort, aber es gibt einige Dienste, als ich sie tötete, werden sie sich bald neu starten. – SEed