2010-12-29 16 views
3

Activity lifecycle Der Abschnitt in der Beispielanwendung Fundamentals besagt, dass es Zustände sind:Wie viele Staaten hat eine Aktivität?

Eine Aktivität hat im wesentlichen drei Zuständen :

(1. aktiv/Laufen 2. 3 angehalten. gestoppt)

Aber dann, als ich die aktuelle Aktivitätsklasse Dokumentation las weiter heißt es in dem Activity Lifecycle Abschnitt, dass es ist 4 Zustand:

Eine Aktivität hat im wesentlichen vier Zustände:

(1. active/running 2. pausiert 3. stopped 4. "droped"?)

Beide Quellen (auf der gleichen Website) stimmen über die ersten 3 überein, aber die vierte wird nur in der Klassendokumentation erwähnt und ist unbenannt.

Also, gibt es wirklich 4 Zustände oder nur 3?

Wenn es 4 gibt, wie heißt der vierte?

Bitte helfen Sie mir, diese Diskrepanz zu verstehen.

Auch hervorgehobene farbige Blöcke in this beautiful and very informative flowchart scheinen nicht den Zuständen zu entsprechen. Wo würden Sie in the flowchart die 3 oder 4 Staaten markieren?

Antwort

4

Ich würde es als drei Zustände beschreiben. Der vierte "Zustand" ist die Nicht-Existenz, in der Android die Aktivität zerstören kann, um RAM freizugeben. Wenn diese Aktivität jedoch weiterhin über die Schaltfläche ZURÜCK erreichbar ist, bleibt Android auf Bundle von onSaveInstanceState() hängen und verwendet diese, wenn die Aktivität neu erstellt wird. Wenn Sie diesen zwischengespeicherten Bundle einen "Zustand" betrachten möchten, würde ich nicht streiten, aber es ist nicht die Art, wie ich es normalerweise beschreibe.

Auch hervorgehobene farbige Blöcke in diesem schönen und sehr informativen Flussdiagramm scheinen nicht den Staaten zu entsprechen.

Meistens zeigt dieses Diagramm die Reihenfolge der Lebenszyklusmethoden. Wie Sie sagen, ist es ein Flussdiagramm, mehr als ein Zustandsdiagramm.

Wo würden Sie im Flussdiagramm die 3 oder 4 Zustände markieren?

würde ich nicht. Der Status Aktiv/Laufen ist jedoch die grüne Blase "Aktivität läuft", der angehaltene Zustand ist die weiße Blase "Die Aktivität ist nicht mehr sichtbar" und der gestoppte Zustand liegt zwischen onStop() und onDestroy(). Der Nicht-Existenz- "Staat" wäre die rote "Prozess ist getötet" -Blase.

+0

Noch einmal, Sie sind der Meister. Vielen Dank für diese unglaubliche Antwort. +1 und akzeptiert. –

1

This diagram zeigt 4 Zustände, wobei der vierte mit Destroyed gekennzeichnet ist.

Wie Sie jedoch sehen können, führt dieser 4. "Zustand" nirgendwohin. Das heißt, im Gegensatz zu den drei anderen Staaten, die einem anderen Staat "entzogen" werden können, ist dieser "zerstörte" Staat eine Sackgasse.