Sehen Sie es im Aktivitätslebenszyklus (bei Android-Entwicklern).
onCreate () :
Wird aufgerufen, wenn die Aktivität erstellt wird. Hier sollten Sie alle normalen statischen Einstellungen vornehmen: Ansichten erstellen, Daten an Listen binden usw. Mit dieser Methode erhalten Sie auch ein Bundle, das den zuvor eingefrorenen Status der Aktivität enthält, sofern vorhanden. Immer gefolgt von onStart ().
onRestart () :
Wird aufgerufen, nachdem Ihre Aktivität gestoppt wurde, bevor sie erneut gestartet wird. 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 tritt.
onResume () :
Wird aufgerufen, wenn die Aktivität mit dem Benutzer interagiert. Zu diesem Zeitpunkt befindet sich Ihre Aktivität ganz oben im Aktivitätsstapel, und die Benutzereingaben werden dorthin geleitet. Immer gefolgt von onPause ().
onPause () :
Wird als Teil des Aktivitätslebenszyklus aufgerufen, wenn eine Aktivität in den Hintergrund tritt, aber (noch) nicht getötet wurde. Das Gegenstück zu onResume (). Wenn Aktivität B vor Aktivität A gestartet wird, wird dieser Rückruf für A aufgerufen. B wird erst erstellt, wenn onPause () von A zurückgegeben wird. Führen Sie daher hier keine längeren Schritte aus.
onStop () :
Wird aufgerufen, wenn Sie für den Benutzer nicht mehr sichtbar sind. Abhängig von der späteren Benutzeraktivität erhalten Sie als Nächstes entweder onRestart (), onDestroy () oder nichts. Beachten Sie, dass diese Methode in Situationen mit wenig Arbeitsspeicher, in denen das System nicht über genügend Arbeitsspeicher verfügt, um den Prozess Ihrer Aktivität nach dem Aufruf der Methode onPause () auszuführen, möglicherweise nie aufgerufen wird.
onDestroy () :
Der letzte Anruf, den Sie erhalten, bevor Ihre Aktivität zerstört wird. Dies kann entweder passieren, weil die Aktivität beendet wird (jemand, der als finish () bezeichnet wird, oder weil das System diese Instanz der Aktivität vorübergehend zerstört, um Platz zu sparen. Mit der Methode isFinishing () können Sie zwischen diesen beiden Szenarien unterscheiden.
Wenn die Aktivität zum ersten Mal geladen wird, werden die Ereignisse wie folgt aufgerufen:
onCreate()
onStart()
onResume()
Wenn Sie auf die Schaltfläche Telefon klicken, wird die Aktivität in den Hintergrund gestellt und die folgenden Ereignisse werden aufgerufen:
onPause()
onStop()
Beenden Sie den Telefonwähler und die folgenden Ereignisse werden aufgerufen:
onRestart()
onStart()
onResume()
Wenn Sie auf die Schaltfläche Zurück klicken ODER versuchen, die Aktivität zu beenden (), werden die Ereignisse wie folgt aufgerufen:
onPause()
onStop()
onDestroy()
Aktivitätszustände
Das Android-Betriebssystem verwendet eine Prioritätswarteschlange, um die Verwaltung der auf dem Gerät ausgeführten Aktivitäten zu unterstützen. Abhängig vom Status einer bestimmten Android-Aktivität wird ihr innerhalb des Betriebssystems eine bestimmte Priorität 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 zeigt die Zustände, die eine Aktivität während ihrer Lebensdauer durchlaufen kann:
Diese Zustände können wie folgt in drei Hauptgruppen unterteilt werden:
Aktiv oder laufend - Aktivitäten gelten als aktiv oder laufend, wenn sie im Vordergrund stehen, auch als oberster Punkt des Aktivitätsstapels bezeichnet. Dies wird als Aktivität mit der höchsten Priorität im Android-Aktivitätsstapel angesehen und wird daher 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 kann, dass die Benutzeroberfläche dies tut nicht mehr reagieren.
Angehalten - Wenn das Gerät in den Ruhezustand wechselt oder eine Aktivität noch sichtbar ist, aber teilweise durch eine neue, nicht vollständige oder transparente Aktivität ausgeblendet wird, gilt die Aktivität als angehalten. Angehaltene Aktivitäten sind noch aktiv, dh sie verwalten alle Status- und Mitgliederinformationen und bleiben dem Fenstermanager zugeordnet. Dies wird als Aktivität mit der zweithöchsten Priorität im Android-Aktivitätsstapel angesehen und als solche nur vom Betriebssystem beendet, wenn das Beenden dieser Aktivität die Ressourcenanforderungen erfüllt, die erforderlich sind, um die aktive / laufende Aktivität stabil und reaktionsschnell zu halten.
Gestoppt - Aktivitäten, die durch eine andere Aktivität vollständig verdeckt sind, gelten als gestoppt oder im Hintergrund. Gestoppte Aktivitäten versuchen immer noch, ihre Status- und Mitgliedsinformationen so lange wie möglich beizubehalten. Gestoppte Aktivitäten werden jedoch als die niedrigste Priorität der drei Status angesehen. Daher beendet das Betriebssystem Aktivitäten in diesem Status zuerst, um die Ressourcenanforderungen zu erfüllen von Aktivitäten mit höherer Priorität.
* Beispielaktivitä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");
}
}