Heim  >  Artikel  >  Java  >  Detaillierte Erläuterung des Lebenszyklus von Aktivitäten in der Android-Entwicklung

Detaillierte Erläuterung des Lebenszyklus von Aktivitäten in der Android-Entwicklung

高洛峰
高洛峰Original
2017-01-07 16:19:121460Durchsuche

Die Beispiele in diesem Artikel beschreiben den Lebenszyklus von Android-Aktivitäten. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Die Aktivitätsklasse befindet sich im Paket android.app und das Vererbungssystem ist wie folgt:

1.Java.lang .Object

2. android.content.Context

3.android.app.ApplicationContext

4.android.app.Activity

Aktivität ist separat und zur Abwicklung von Benutzeroperationen verwendet. Fast alle Aktivitäten müssen sich mit Benutzern befassen, sodass Entwickler die Benutzeroberfläche über die setContentView(View)-Schnittstelle in das von der Aktivität erstellte Fenster einfügen können kann auch auf andere Weise implementiert werden: Als schwebendes Fenster (über die Themensammlung von windowIsFloating) oder eingebettet in andere Aktivitäten (mithilfe von ActivityGroup). Die meisten Aktivitätsunterklassen müssen die folgenden zwei Schnittstellen implementieren:

① Die onCreate(Bundle)-Schnittstelle ist der Ort, an dem die Aktivität initialisiert wird. Hier können Sie normalerweise setContentView(int) aufrufen, um die in der Ressourcendatei definierte Benutzeroberfläche festzulegen. Verwenden Sie findViewById(int), um das in der Benutzeroberfläche definierte Fenster abzurufen.

② Die onPause()-Schnittstelle ist der Ort, an dem der Benutzer bereit ist, die Aktivität zu verlassen. Hier sollten alle Änderungen übermittelt werden (normalerweise von ContentProvider verwendet). Daten speichern).

Um Context.startActivity() verwenden zu können, müssen für alle Aktivitätsklassen verwandte „Aktivitäts“-Elemente in der Datei AndroidManifest.xml definiert sein.

Der Aktivitätskurs ist ein wichtiger Teil des Android-Anwendungslebenszyklus.

Aktivitätslebenszyklus

Aktivitäten im System werden von einem Aktivitätsstapel verwaltet. Wenn eine neue Aktivität gestartet wird, wird sie oben auf dem Stapel platziert und wird zu einer laufenden Aktivität. Die vorherige Aktivität bleibt im Stapel und wird nicht mehr im Vordergrund platziert, bis die neue Aktivität beendet wird.

Aktivität hat im Wesentlichen vier verschiedene Zustände:

1. Im Vordergrund des Bildschirms (oben im Aktivitätsstapel) wird sie als aktiver oder laufender Zustand (aktiv oder ausgeführt) bezeichnet

2. Wenn eine Aktivität den Fokus verliert, aber immer noch sichtbar ist (eine neue nicht bildschirmfüllende Aktivität oder eine transparente Aktivität wird oben auf dem Stapel platziert), wird sie als „Pause“ bezeichnet. Eine angehaltene Aktivität bleibt aktiv (behält alle Status-, Mitgliedsinformationen und Verbindung zum Fenstermanager bei), wird jedoch beendet, wenn der Systemspeicher extrem niedrig ist.

3. Wenn eine Aktivität vollständig von einer anderen Aktivität abgedeckt wird, wird sie als „Gestoppt“ bezeichnet. Es behält weiterhin alle Status- und Mitgliedsinformationen bei, ist jedoch nicht mehr sichtbar, sodass sein Fenster ausgeblendet ist und die gestoppte Aktivität beendet wird, wenn der Systemspeicher an anderer Stelle verwendet werden muss.

4. Wenn sich eine Aktivität im Status „Pause“ oder „Gestoppt“ befindet, kann das System die Aktivität aus dem Speicher löschen: entweder muss die Aktivität beendet werden oder sie wird direkt beendet Verfahren. Wenn die Aktivität dem Benutzer erneut angezeigt wird, muss sie neu gestartet und auf den vorherigen Status zurückgesetzt werden.

Die folgende Abbildung zeigt die Callback-Schnittstelle von Activity. Entwickler können die Implementierung überladen, um relevanten Code auszuführen. Status.

Detaillierte Erläuterung des Lebenszyklus von Aktivitäten in der Android-Entwicklung

Im Bild oben hat Aktivität drei Schlüsselzyklen:

1. Der gesamte Lebenszyklus, beginnend von onCreate(Bundle) bis onDestroy() Finish . Die Aktivität legt den gesamten „globalen“ Status in onCreate() fest und gibt alle Ressourcen in onDestory() frei. Wenn beispielsweise bei einer Aktivität im Hintergrund ein Thread zum Herunterladen von Daten aus dem Netzwerk ausgeführt wird, kann die Aktivität den Thread in onCreate() erstellen und den Thread in onDestory() stoppen.

2. Der sichtbare Lebenszyklus beginnt mit onStart() und endet mit onStop(). Während dieser Zeit ist die Aktivität auf dem Bildschirm sichtbar, befindet sich jedoch möglicherweise nicht im Vordergrund und kann nicht mit dem Benutzer interagieren. Zwischen diesen beiden Schnittstellen müssen die dem Benutzer angezeigten UI-Daten und -Ressourcen verwaltet werden. Sie können beispielsweise einen IntentReceiver in onStart registrieren, um auf Änderungen in der UI zu warten, die durch Datenänderungen verursacht werden. Sie können es in onStop() registrieren. Die Registrierung in aufheben. Sowohl onStart() als auch onStop() können mehrmals aufgerufen werden, da die Aktivität jederzeit zwischen sichtbar und ausgeblendet wechseln kann.

3. Der Lebenszyklus des Vordergrunds beginnt mit onResume() und endet mit onPause(). In dieser Zeit steht die Aktivität im Vordergrund aller Aktivitäten und interagiert mit dem Benutzer. Aktivitäten können häufig zwischen fortgesetzten und pausierten Zuständen wechseln, beispielsweise wenn das Gerät sich auf den Ruhezustand vorbereitet, wenn ein Aktivitätsverarbeitungsergebnis gesendet wird und wenn eine neue Absicht gesendet wird. Daher sollte der Code in diesen Schnittstellenmethoden sehr leichtgewichtig sein.

Der gesamte Lebenszyklus der Aktivität ist in den folgenden Schnittstellenmethoden definiert, und alle Methoden können überladen werden. Alle Aktivitäten müssen onCreate(Bundle) implementieren, um die Einstellungen zu initialisieren. Derzeit müssen die meisten Aktivitäten auch die onFreeze()-Schnittstelle implementieren, um den Status von onCreate(Bundle) wiederherzustellen die Einstellung.

public class Activity extends ApplicationContext {
protected void onCreate(Bundle icicle);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onFreeze(Bundle outIcicle);
protected void onPause();
protected void onStop();
protected void onDestroy();
}

Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit der Android-Programmierung befassen.

Ausführlichere Artikel zum Lebenszyklus von Aktivitäten in der Android-Entwicklung finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn