Frage

Ich bin für die am besten geeignete Klasse suche ein Dispatcher für AsyncTasks von meinen Aktivitäten aufgerufen werden.

ich denke, es einer von diesen sein könnte:

  1. Unterklasse von Anwendung ;
  2. Unterklasse von Service ;
  3. mein statisch Zeug.

Was mich betrifft - es ist simlier die dritte Wahl zu implementieren. Aber die Frage ist, wird es mehr „Tod-resistant“ als Dienst oder Anwendung sein? Es ist auch sehr interessant, was länger leben wird - Anwendung oder einen Dienst? Meine Vermutung ist, die Anwendung lebt, solange die App (Aufgabe in Bezug auf Android) Prozess lebt.

Also im Grunde muß ich diese Optionen durch ihre „Tod-resistant“ Qualität reichen, weil ich auf dem meisten „statisch“, was verlassen möchte.

UPDATE:

Ursprünglich wurde die Frage gestellt in 2010 , wenn (1) Android neue Plattform für Entwickler war und (2) Google-Dokumentation zu vage war (in einigen Fällen ist es sogar irreführend) über App-Komponenten Leben -Zyklen und der gesamte App-Prozess-Lebenszyklus.

War es hilfreich?

Lösung

Sie sollten auf jeden Fall verwenden Sie einen Dienst .

Der Hauptgrund für diese - Service hat seine eigenen dokumentiert Lebenszyklus , während der Anwendung nicht. Application So wie alle Ihrer statischen Variablen können fast jederzeit vom System getötet werden, werden Sie keinen Rückruf erhalten und können diesen Prozess nicht stoppen. Also, alle nicht gespeicherten Daten (alle statischen Variablen) verloren.

Auf der anderen Seite, Service kann nicht stillschweigend durch das System getötet werden, zumindest onDestroy() Methode sollte zuerst genannt werden. Mit solchen Rückruf Sie Ihren Zustand zu einem gewissen persistenten Speicher (wie SharedPreferences, Datei, Datenbank, etc.) speichern und wiederherstellen, diesen Zustand beim nächsten Mal Ihre Anwendung oder ein Dienst gestartet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top