Siehe in Lebenszyklus der Aktivität (bei Android Developers).
![Enter image description here]()
onCreate() :
Wird aufgerufen, wenn die Aktivität zum ersten Mal erstellt wird. An dieser Stelle sollten Sie alle normalen statischen Einstellungen vornehmen: Ansichten erstellen, Daten an Listen binden, usw. Diese Methode liefert Ihnen auch ein Bundle, das die Zustand der Aktivität enthält, falls es einen solchen gab. Immer gefolgt von onStart().
onRestart() :
Wird aufgerufen, nachdem Ihre Aktivität gestoppt wurde, bevor sie gestartet wird wieder. Immer gefolgt von onStart()
onStart() :
Wird aufgerufen, wenn die Aktivität für den Benutzer sichtbar wird. Gefolgt von onResume(), wenn die Aktivität in den Vordergrund kommt.
onResume() :
Wird aufgerufen, wenn die Aktivität beginnt, mit dem Benutzer zu interagieren. Zu diesem befindet sich Ihre Aktivität an der Spitze des Aktivitätsstapels, wobei Benutzereingaben zu ihr. Immer gefolgt von onPause().
onPause () :
Wird als Teil des Lebenszyklus einer Aktivität aufgerufen, wenn eine Aktivität in den Hintergrund geht, aber (noch) nicht beendet worden ist. Das Gegenstück zu onResume(). Wenn die Aktivität B vor der Aktivität A gestartet wird, wird dieser Callback auf A aufgerufen. B wird nicht erstellt, bis A's onPause() r hier nichts Langwieriges zu tun.
onStop() :
Wird aufgerufen, wenn Sie für den Benutzer nicht mehr sichtbar sind. Sie werden als nächstes entweder onRestart(), onDestroy() oder gar nichts erhalten, je nach [ ] Beachten Sie, dass diese Methode in Situationen mit wenig Speicher nie aufgerufen werden kann wo das System nicht genug Speicher hat, um Ihre Aktivität zu halten Prozess nach dem Aufruf der onPause()-Methode am Laufen zu halten.
onDestroy() :
Der letzte Anruf, den Sie erhalten, bevor Ihre Aktivität zerstört wird. Dieser kann entweder passieren, weil die Aktivität beendet wird (jemand hat finish() aufgerufen hat, oder weil das System vorübergehend diese Instanz der Aktivität vorübergehend zerstört, um Platz zu sparen. Sie können mit der Methode isFinishing() zwischen> diesen beiden Szenarien unterscheiden.
Wenn die Aktivität Erstmalige Belastungen werden die Ereignisse wie folgt aufgerufen:
onCreate()
onStart()
onResume()
Wenn Sie Klicken Sie auf die Schaltfläche Telefon wird die Aktivität in den Hintergrund gestellt und die folgenden Ereignisse werden aufgerufen:
onPause()
onStop()
Beenden Sie das Telefonwählprogramm und die folgenden Ereignisse werden aufgerufen:
onRestart()
onStart()
onResume()
Wenn Sie auf die Schaltfläche Zurück-Taste ODER versuchen Sie beenden() die Aktivität werden die Ereignisse wie folgt genannt:
onPause()
onStop()
onDestroy()
Tätigkeitsstaaten
Das Android-Betriebssystem verwendet eine Prioritätswarteschlange, um die Verwaltung der auf dem Gerät laufenden Aktivitäten zu unterstützen. Je nachdem, in welchem Zustand sich eine bestimmte Android-Aktivität befindet, wird ihr eine bestimmte Priorität innerhalb des Betriebssystems zugewiesen. Dieses Prioritätssystem hilft Android dabei, Aktivitäten zu identifizieren, die nicht mehr verwendet werden, und ermöglicht es dem Betriebssystem, Speicher und Ressourcen zurückzugewinnen. Das folgende Diagramm veranschaulicht die Zustände, die eine Aktivität während ihrer Lebensdauer durchlaufen kann:
Diese Zustände lassen sich in drei Hauptgruppen unterteilen:
Aktiv oder Laufend - Aktivitäten gelten als aktiv oder laufen, wenn sie sich im Vordergrund befinden, auch bekannt als die Spitze des Aktivitätsstapels. Dies ist die Aktivität mit der höchsten Priorität im Android-Aktivitätsstapel und wird als solche nur in extremen Situationen vom Betriebssystem beendet, z. B. wenn die Aktivität versucht, mehr Speicher zu verwenden, als auf dem Gerät verfügbar ist, da dies dazu führen könnte, dass die Benutzeroberfläche nicht mehr reagiert.
Pausiert - Wenn das Gerät in den Ruhezustand geht oder eine Aktivität noch sichtbar ist, aber teilweise von einer neuen, nicht vollständigen oder transparenten Aktivität verdeckt wird, gilt die Aktivität als pausiert. Pausierte Aktivitäten sind noch aktiv, d. h. sie behalten alle Status- und Mitgliederinformationen bei und bleiben mit dem Windowmanager verbunden. Sie gilt als die Aktivität mit der zweithöchsten Priorität im Android-Aktivitätsstapel und wird als solche nur dann vom Betriebssystem beendet, wenn das Beenden dieser Aktivität die Ressourcenanforderungen erfüllt, die erforderlich sind, um die aktive/laufende Aktivität stabil und ansprechbar zu halten.
Gestoppt - Aktivitäten, die vollständig von einer anderen Aktivität verdeckt werden, gelten als gestoppt oder im Hintergrund. Gestoppte Aktivitäten versuchen immer noch, ihren Status und ihre Mitgliederinformationen so lange wie möglich zu behalten, aber gestoppte Aktivitäten werden als die niedrigste Priorität der drei Zustände betrachtet, und als solche wird das Betriebssystem Aktivitäten in diesem Zustand zuerst beenden, um den Ressourcenbedarf von Aktivitäten mit höherer Priorität zu befriedigen.
*Musteraktivität zum Verständnis des Lebenszyklus**
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
String tag = "LifeCycleEvents";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d(tag, "In the onCreate() event");
}
public void onStart()
{
super.onStart();
Log.d(tag, "In the onStart() event");
}
public void onRestart()
{
super.onRestart();
Log.d(tag, "In the onRestart() event");
}
public void onResume()
{
super.onResume();
Log.d(tag, "In the onResume() event");
}
public void onPause()
{
super.onPause();
Log.d(tag, "In the onPause() event");
}
public void onStop()
{
super.onStop();
Log.d(tag, "In the onStop() event");
}
public void onDestroy()
{
super.onDestroy();
Log.d(tag, "In the onDestroy() event");
}
}
21 Stimmen
Warum wurde diese Frage so oft hochgestuft? Warum wurde sie nicht geschlossen?
62 Stimmen
Warum wird eine Frage mit vielen positiven Bewertungen geschlossen? Stackoverflow hat eine schlechte Angewohnheit, das zu tun.
15 Stimmen
Dies ist eine Frage im Wiki-Stil, und ich denke, sie sollte auf der Website erlaubt sein.
4 Stimmen
@Alexander Kulyakhtin - Warum sollte man diese Frage schließen? Stattdessen sollten Sie Ihr Konto schließen, wenn Sie die Informationen nicht verdauen können, die in den Antworten für neue Android-Benutzer bereitgestellt werden. Diese Frage ist voll von Wissen und ich werde diese Frage hochstufen.
0 Stimmen
Denn wann werden diese Methoden in Frage gestellt, was haben Sie ausprobiert?
0 Stimmen
Kommentar: Warum ist diese Frage so oft hochgestuft worden? Ich: fährt fort mit Upvote