Service oder Thread oder AsyncTask

Verzeihen Sie meine Fragen, da ich immer noch sehr neu in der Programmierung bin, damit ich die Konzepte von mainthreads und asynchronen Aufgaben und Diensten und Threads nicht vollständig verstehe. Ich lese die Dokumentation über Services für Android, weil ich einige Aufgaben aus dem Haupt-Thread ausführen möchte. Es sagt:

Wenn Sie eine Arbeit außerhalb Ihres Hauptfadens durchführen müssen, aber nur, während der Benutzer mit Ihrer Anwendung interagiert, sollten Sie stattdessen stattdessen einen neuen Thread und keinen Service erstellen.

  • Build-Varianten in Gradle für ein Bibliotheksprojekt in Android
  • Verschlüsselung und Entschlüsselung zwischen Android, PHP & node.js
  • Android: Listenansicht Ausgewählter Artikel -1
  • Reaktionsfähige Wrapper für CoordinatorLayout und BottomSheetBehavior
  • Wie kann man sich ändern ändern im Listenelement Layout Verhalten ändern zwischen sdk 17 und 18?
  • Erkennen Sie, dass eine Aktivität in Android geschlossen ist
  • 1.Sie sagen, dass ein "Thread" stoppt sofort nach dem Verlassen der App (dh: Home-Taste)?

    Zum Beispiel, wenn du etwas Musik spielen möchtest, aber nur während deine Aktivität läuft, kannst du einen Thread in onCreate () erstellen, ihn in onStart () starten und dann in onStop () stoppen. Betrachten Sie auch AsyncTask oder HandlerThread anstelle der traditionellen Thread-Klasse. Weitere Informationen zu Threads finden Sie im Prozess- und Threading-Dokument.

    2.Wenn Fäden in Java gebacken sind, warum hat Android AsyncTasks?

    Denken Sie daran, dass, wenn Sie einen Dienst verwenden, es immer noch im Haupt-Thread Ihrer Anwendung standardmäßig läuft, so dass Sie immer noch einen neuen Thread innerhalb des Dienstes erstellen, wenn es intensive oder blockierende Operationen ausführt.

    3.Does dies im Grunde gemein, dass fast jeder Service wird im Grunde gehen, um einen Thread in ihm erstellt haben?

    4. Wäre es schlimm, eine AsyncTask im Inneren eines Dienstes zu starten?

  • Benutzerdefinierte RatingBar Tönung API <21 mit Support-Bibliothek 22.1.1
  • GreenDAO nicht generieren FOREIGN KEY (...) Einschränkung in Tabelle
  • In Titan ist es möglich, auf die Drittanbieter-Jar-gebündelten Ressourcendateien (xml) von einem Android-Modul zuzugreifen?
  • So stellen Sie den Dialogfenster-Hintergrund transparent ein, ohne den Rand zu beeinflussen
  • Android friert ein, wenn es eine NullPointerException in OnClickListener.onClick gibt (andere Tasks können nicht starten)
  • ActionBar nicht auf die ausgewählte Registerkarte scrollen, wenn diese außerhalb der sichtbaren Grenzen von actionBar auf dem Bildschirm ist
  • 4 Solutions collect form web for “Service oder Thread oder AsyncTask”

    1.Sie sagen, dass ein "Thread" stoppt sofort nach dem Verlassen der App (dh: Home-Taste)?

    Ein Thread sollte zerstört werden, wenn das Thread , das es angefangen hat, zerstört wird. Also, wenn du einen Thread in einer Activity dann sollte es zerstört werden, wenn diese Activity zerstört oder auf einen Service . Zum Beispiel können Sie Musik in einem Thread starten und die Songs dort aktualisieren, aber wenn Sie möchten, dass es weiter spielt, wenn die Activity zerstört wird, dann sollte es in einen Service verschoben werden

    2.Wenn Fäden in Java gebacken sind, warum hat Android AsyncTasks?

    Eine AsyncTask ermöglicht es Ihnen, Hintergrundarbeit durchzuführen und die UI vor, während und nach der Hintergrundarbeit zu erledigen, indem Sie irgendwelche ihrer eingebauten Methoden verwenden, außer für doInBackground() weil es die einzige ist, die nicht ausgeführt wird Die UI Thread

    3.Does dies im Grunde gemein, dass fast jeder Service wird im Grunde gehen, um einen Thread in ihm erstellt haben?

    Nicht unbedingt, aber du könntest einen Thread in ihm schaffen

    4. Wäre es schlimm, eine AsyncTask im Inneren eines Dienstes zu starten?

    Nein. Du könntest das tun.

    AsyncTask ist eine großartige Möglichkeit, Hintergrundarbeit zu machen. Seine Methoden machen es sehr einfach, die UI zu aktualisieren. Aber Sie müssen die Dokumentation sorgfältig durchlesen (vielleicht sogar ein paar Mal), um sicherzustellen, dass Sie ganz verstehen, wie man sie benutzt. Denken Sie auch daran, dass diese für kurzlebige Operationen sind, damit sie gut zum Herunterladen von Netzwerkdaten sein können, aber nicht für Dinge verwendet werden sollten, die mehr als ein paar Sekunden dauern (nach den Dokumenten)

    1. Ein Thread hört nicht sofort auf, wenn du die App verlässt. Der Vorschlag, einen separaten Thread zu verwenden, ist nur so, dass du die GUI deiner App nicht blockierst.

    2. AsyncTasks verwenden tatsächlich ein ThreadPool hinter den Kulissen, da das Erstellen eines Threads ein teurer Prozess ist. Wenn Sie viele kurzlebige Aufgaben haben, ist die Verwendung von AsyncTask nur eine schnelle, einfache, aber effiziente Möglichkeit, sie auszuführen, ohne die GUI Ihrer Anwendung zu blockieren.

    3. Ja, im Wesentlichen. Ein Service ist schwerer als ein Faden. Mit einem Service anstelle eines Threads ist keine gute Idee. Auch Dienste können tatsächlich gemacht werden, um auf einem ganz anderen Prozess auszuführen. Nur zu deiner Information.

    4. Nein. Es wäre eine gute Idee, wenn Sie viele kurzlebige Aufgaben ausführen.

    Wenn Sie nur versuchen, Aufgaben aus dem Haupt-Thread auszuführen, brauchen Sie keinen Service. Erstellen Sie einfach einen anderen Thread.

    AsyncTask hinter den Kulissen legt einfach Ihre Aufgabe an einen Thread Pool für die Ausführung. Wenn Sie viele kurzlebige Aufgaben haben, wie das Analysieren von Netzwerkverkehr, ist AsyncTask großartig.

    Allerdings, wenn Sie eine riesige Menge an Anfragen behandeln, möchten Sie vielleicht mehr Kontrolle über den Thread-Pool, der Ihre Aufgaben ausführt.

    1. Nein

    2. Weil ein Hauptfaden die Benutzeroberfläche steuert, während Asynctasks schwerere Aufgaben unter Beibehaltung der UI verzögerungsfrei machen können.

    3. Nein, aber wenn Sie möchten, dass Ihr Service schweres Heben wie das Laden von Sachen aus dem Internet macht, dann sollte es eine Asynthask verwenden. Die meisten Dienste werden verwendet, um Daten aus dem Internet zu laden, so dass die meisten von ihnen haben asynctasks. Beachten Sie, dass für den Dienst am Leben gehalten werden, nachdem die Aktivität stirbt, müssen Sie es angeben. Services standardmäßig sterben zusammen mit der Aktivität, sofern nicht richtig konfiguriert

    4. Nein

    Sie könnten verwirrend sein durch Thread und Aufgabe und process.Task ist eine kleine Art von Prozess. Ein Prozess ist ein Programm, das in Ihrem System Beispiel läuft, wenn Sie Ihren Task-Manager starten, zeigt es den gesamten Prozess läuft wie Internet-Explorer aber Thread Ist ein kleiner leichter Prozess bedeutet, dass Sie sagen können, Sub-Prozess, dass in der Ausführung für die Durchführung einer Aufgabe, sondern asynchron in Android ist nur ähnlich wie Thread, aber es kann-long.Take ein Beispiel in Android Sie spielen Tempel-Run in Android-Telefon, Und irgendjemand ruft dich so an, dass eine hohe Prioritätsaufgabe durchgeführt wird und der aktuelle Thread dort pausiert wird und so viele Methoden gibt es wie onCreate (), onPause (), das kannst du verstehen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.