Warum Service nutzen, wenn es läuft im gleichen thread in android

Ich war durch Gebunden-Service im Android-Entwickler-website. Ich dachte, ich Verstand den Dienst genug, aber ich habe nur einen anderen Weg gefunden, der Anschluss-service durch einen Messenger Klasse vor allem für die lokalen service. Dort bekam ich verwirrt. Vielleicht habe ich das Konzept falsch.

Hier ist mein Verständnis von Android Service. Erstellen Sie einen Dienst, wenn

  1. Sie wollen separate Arbeitsplätze in der hintergrund.
  2. Sie wollen, machen es zu einem separaten Prozess.
  3. Sie wollen es in einem Lebenszyklus, die unabhängig von der Komponente, die es gestartet hat.

Verwirrung ist das erste Element in der Liste, die definition der hintergrund. Ist das nicht der hintergrund ein thread oder Prozess? Ich hätte nie gedacht, dass es laufen kann auf dem Haupt-thread.

Hier ist die Vorsicht der service in den dev-Seiten über.

Vorsicht: Ein service läuft im Haupt-thread von seiner hosting-Prozess—der Dienst erstellt nicht einen eigenen thread und nicht in einem separaten Prozess ausgeführt (sofern Sie nichts anderes angeben). Dies bedeutet, dass, wenn Ihr Dienst tun wird jede CPU-intensive arbeiten oder blockierenden Operationen (wie MP3-Wiedergabe oder Netzwerk), sollte man einen neuen thread erstellen innerhalb des Dienstes zu tun, die Arbeit. Durch Verwendung einer separaten thread, verringern Sie das Risiko der Anwendung Nicht mehr Reagiert (ANR) Fehler und die Anwendung der Haupt-thread kann bleiben, gewidmet, um die Interaktion der Nutzer mit Ihren Aktivitäten.

Fragen

  1. Warum geht man wählen, um die Nutzung des service, wenn die service-Funktion wird sowieso im Hauptthread ausgeführt?
  2. Müssen wir schreiben service nur zu blockieren, ANR, auch wenn das zeitaufwendig ist, geschieht in der main-thread? Übernimmt der Dienst ist nur für meine Anwendung.
  3. Gibt es praktische Fälle oder Gründe, warum Sie einen Dienst wie privat und läuft in den gleichen thread?
  • der Hauptzweck der Dienste ist, dass Sie unterschiedliche Lebens-Zyklus als Ihre Aktivität-Lebenszyklus - also #3 gilt auch hier.
InformationsquelleAutor Jaekwan | 2015-05-19
Schreibe einen Kommentar