Hinzufügen von Punkten zur akzeptierten Antwort:
Informationen zur Verwendung von IntentService in der Android-API finden Sie hier. z.B:
public class SimpleWakefulService extends IntentService {
public SimpleWakefulService() {
super("SimpleWakefulService");
}
@Override
protected void onHandleIntent(Intent intent) { ...}
Um eine IntentService-Komponente für Ihre App zu erstellen, definieren Sie eine Klasse, die IntentService erweitert, und definieren Sie darin eine Methode, die onHandleIntent () überschreibt.
Lesen Sie auch den Quellcode des IntentService, seine Konstruktor- und Lebenszyklusmethoden wie onStartCommand ...
@Override
public int More ...onStartCommand(Intent intent, int flags, int startId) {
onStart(intent, startId);
return mRedelivery ? START_REDELIVER_INTENT : START_NOT_STICKY;
}
Die gemeinsame Wartung einer AsyncTask ist einer der besten Ansätze für viele Anwendungsfälle, in denen die Nutzlast nicht sehr groß ist. oder erstellen Sie einfach eine Klasse, die IntentSerivce erweitert. Ab Android Version 4.0 sollten sich alle Netzwerkvorgänge im Hintergrund befinden, da sonst das Kompilieren / Erstellen der Anwendung fehlschlägt. Trennen Sie den Thread von der Benutzeroberfläche. Die AsyncTask-Klasse bietet eine der einfachsten Möglichkeiten, eine neue Aufgabe aus dem UI-Thread auszulösen. Weitere Informationen zu diesem Thema finden Sie im Blogbeitrag
aus dem Android-Entwicklerhandbuch :
IntentService ist eine Basisklasse für Dienste, die bei Bedarf asynchrone Anforderungen (ausgedrückt als Absichten) verarbeiten. Clients senden Anforderungen über startService (Intent) -Aufrufe. Der Dienst wird nach Bedarf gestartet, verarbeitet jede Absicht wiederum mithilfe eines Arbeitsthreads und stoppt sich selbst, wenn die Arbeit ausgeht.
In IntentService verwendetes Entwurfsmuster
: Dieses Muster "Arbeitswarteschlangenprozessor" wird häufig verwendet, um Aufgaben aus dem Hauptthread einer Anwendung zu entfernen. Die IntentService-Klasse ist vorhanden, um dieses Muster zu vereinfachen und die Mechanik zu übernehmen. Um es zu verwenden, erweitern Sie IntentService und implementieren Sie onHandleIntent (Intent). IntentService empfängt die Absichten, startet einen Arbeitsthread und beendet den Dienst entsprechend.
Alle Anforderungen werden in einem einzelnen Worker-Thread verarbeitet. Sie können so lange wie nötig dauern (und blockieren nicht die Hauptschleife der Anwendung), es wird jedoch jeweils nur eine Anforderung verarbeitet.
Die IntentService-Klasse bietet eine einfache Struktur zum Ausführen einer Operation für einen einzelnen Hintergrundthread. Auf diese Weise können lang laufende Vorgänge ausgeführt werden, ohne die Reaktionsfähigkeit Ihrer Benutzeroberfläche zu beeinträchtigen. Außerdem ist ein IntentService von den meisten Lebenszyklusereignissen der Benutzeroberfläche nicht betroffen, sodass er unter Umständen fortgesetzt wird, unter denen eine AsyncTask heruntergefahren wird.
Ein IntentService weist einige Einschränkungen auf:
Es kann nicht direkt mit Ihrer Benutzeroberfläche interagieren. Um die Ergebnisse in die Benutzeroberfläche einzufügen, müssen Sie sie an eine Aktivität senden. Arbeitsanforderungen werden nacheinander ausgeführt. Wenn ein Vorgang in einem IntentService ausgeführt wird und Sie ihm eine weitere Anforderung senden, wartet die Anforderung, bis der erste Vorgang abgeschlossen ist. Ein Vorgang, der auf einem IntentService ausgeführt wird, kann nicht unterbrochen werden. In den meisten Fällen jedoch
IntentService ist der bevorzugte Weg zu einfachen Hintergrundoperationen
** **.
Volley Bibliothek
Es gibt die Bibliothek namens Volley-Bibliothek für die Entwicklung von Android-Netzwerkanwendungen.
Der Quellcode ist für die Öffentlichkeit in GitHub verfügbar.
Die offizielle Android-Dokumentation für Best Practices für Hintergrundjobs : Hilft beim besseren Verständnis von Intent Service, Thread, Handler und Service. und auch Netzwerkoperationen durchführen
IntentService is used for short tasks (etc) and a service is for long ones
wo hast du das gelesen