Fragen zur Absichtsservice
-
27-10-2019 - |
Frage
Nehmen wir an, ich würde mehrere Anrufe eines Absichtserhalts von durchführen startService(intentservice)
, Wird es mehrere Instanzen des Dienstes zusammen ausführen oder wird es in der Warteschlange gestellt?
Lösung
Wenn Sie anrufen Dienst starten Mehrfach und der Dienst läuft bereits am Start Methode wird jedes Mal aufgerufen, Oncreate ruft nur einmal an, wenn es noch nicht vorhanden ist. Eine einzelne Instanz wird für den Service dort sein.
Sieh dir das an Dokumentation , hier wird es unten deutlich erwähnt
"Beachten Sie, dass mehrere Aufrufe zum Kontext.StartService () nicht nisten (obwohl sie zu mehreren entsprechenden Aufrufen von OnStartCommand () führen). STOPself () heißt; "
Andere Tipps
IntentService ist ein Sonderfall des Dienstes. Es werden Anfragen angestellt und sich selbst stoppen, wenn alle Anfragen bearbeitet werden.