Hinzufügen von Punkten zur akzeptierten Antwort:
Siehe die Verwendung von IntentService innerhalb der Android API. z. B:
public class SimpleWakefulService extends IntentService {
public SimpleWakefulService() {
super("SimpleWakefulService");
}
@Override
protected void onHandleIntent(Intent intent) { ...}
Um eine IntentService-Komponente für Ihre Anwendung zu erstellen, definieren Sie eine Klasse, die IntentService erweitert, und definieren Sie darin eine Methode, die onHandleIntent() außer Kraft setzt.
Sehen Sie sich auch den Quellcode des IntentService an, seinen Konstruktor und seine 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;
}
S Anwendungsfälle, bei denen die Nutzlast nicht riesig ist. oder erstellen Sie einfach eine Klasse die IntentSerivce erweitert. Ab Android Version 4.0 sollten alle Netzwerk Operationen im Hintergrund ablaufen, sonst schlägt die Kompilierung/Erstellung der Anwendung fehl. separater Thread von der Benutzeroberfläche. Die Klasse AsyncTask bietet eine der einfachsten Möglichkeiten, eine neue Aufgabe aus dem UI-Thread auszulösen. Weitere Informationen zu diesem Thema finden Sie in dem Blogbeitrag
von Leitfaden für Android-Entwickler :
IntentService ist eine Basisklasse für Dienste, die bei Bedarf asynchrone Anfragen (ausgedrückt als Intents) bearbeiten. Clients senden Anfragen über startService(Intent)-Aufrufe; der Dienst wird nach Bedarf gestartet, bearbeitet jeden Intent der Reihe nach über einen Worker-Thread und hält sich selbst an, wenn er keine Arbeit mehr hat.
In IntentService verwendetes Entwurfsmuster
: Dieses "Work Queue Processor"-Muster wird häufig verwendet, um Aufgaben vom Hauptthread einer Anwendung zu entlasten. Die Klasse IntentService dient der Vereinfachung dieses Musters und kümmert sich um die Mechanismen. Um sie zu verwenden, erweitern Sie IntentService und implementieren onHandleIntent(Intent). IntentService empfängt die Intents, startet einen Worker-Thread und stoppt den Dienst bei Bedarf.
Alle Anfragen werden von einem einzigen Worker-Thread bearbeitet - sie können so lange wie nötig dauern (und blockieren nicht die Hauptschleife der Anwendung), aber es wird immer nur eine Anfrage auf einmal bearbeitet.
Die Klasse IntentService bietet eine unkomplizierte Struktur für die Ausführung eines Vorgangs auf einem einzigen Hintergrund-Thread. Dadurch können lange laufende Vorgänge ohne Beeinträchtigung der Reaktionsfähigkeit der Benutzeroberfläche verarbeitet werden. Außerdem wird ein IntentService von den meisten Lebenszyklusereignissen der Benutzeroberfläche nicht beeinflusst, so dass er auch unter Umständen weiterläuft, unter denen eine AsyncTask heruntergefahren würde.
Ein IntentService hat ein paar Einschränkungen:
Es kann nicht direkt mit Ihrer Benutzeroberfläche interagieren. Um die Ergebnisse in die Benutzeroberfläche zu stellen, müssen Sie sie an eine Aktivität senden. Arbeitsaufträge werden sequentiell ausgeführt. Wenn ein Vorgang in einem IntentService läuft und Sie ihm eine weitere Anforderung schicken, wartet die Anforderung, bis der erste Vorgang beendet ist. Eine Operation, die in einem IntentService läuft, kann nicht unterbrochen werden. In den meisten Fällen jedoch
IntentService ist der bevorzugte Weg zu einfachen Hintergrundoperationen
**
Volley-Bibliothek
Es gibt eine Bibliothek namens volley-library für die Entwicklung von Android-Netzwerkanwendungen Der Quellcode ist für die Öffentlichkeit auf GitHub verfügbar.
Die offizielle Android-Dokumentation für Bewährte Verfahren für Hintergrundaufträge : hilft, den beabsichtigten Dienst, den Thread, den Handler und den Dienst besser zu verstehen. und auch Durchführung von Netzwerkoperationen