Java Reference
In-Depth Information
Damit ist die Activity auf dem Bildschirm zu sehen und hat den Eingabefokus. Eine Activity
kann danach zum Beispiel durch einen Dialog teilweise verdeckt sein. In diesem Fall ist sie
im Zustand „nicht mehr im Vordergrund“. Wenn dagegen eine Activity eine neue Activity
startet und die alte Activity dadurch komplett verdeckt wird, gelangt die alte Activity in den
Zustand „verdeckt“. Die weitere Zustandsübergänge sollten ohne weitere Erläuterung ver-
s t ä ndlich sein.
Als Demonstration können wir alle in Bild 16.8 vorkommenden Methoden in unseren bei-
den Activity-Klassen überschreiben und in alle diese Methoden eine Log-Ausgabe einbauen.
Für die Methode onCreate könnte das zum Beispiel so aussehen:
Log.d(getClass().getName(), "onCreate");
Beim Start der Anwendung erhalten wir dann im LogCat-Bereich von Eclipse die folgende
Ausgabe (vereinfacht durch Entfernung der Zeitstempel und weiterer Informationen):
javacomp.android.activities.Activity1: onCreate
javacomp.android.activities.Activity1: onStart
javacomp.android.activities.Activity1: onResume
Dies ist die erwartete Ausgabe beim Start einer Activity. Wenn man in Activity1 auf den
Absenden-Button drückt und dadurch Activity2 startet, sieht man Folgendes:
javacomp.android.activities.Activity1: onPause
javacomp.android.activities.Activity2: onCreate
javacomp.android.activities.Activity2: onStart
javacomp.android.activities.Activity2: onResume
javacomp.android.activities.Activity1: onStop
Man erkennt, dass auf Activity1 zuerst onPause angewendet wird. Dann wird Activity2
durch onCreate, onStart und onResume aufgebaut. Nachdem dieser Aufbau erfolgreich ver-
laufen ist und Activity1 dadurch vollständig verdeckt wird, wird auf Activity1 jetzt auch
noch onStop angewendet.
Wenn man aus Activity2 zurückkehrt, erfolgt wieder ein Activity-Wechsel, allerdings in die
andere Richtung:
javacomp.android.activities.Activity2: onPause
javacomp.android.activities.Activity1: onRestart
javacomp.android.activities.Activity1: onStart
javacomp.android.activities.Activity1: onResume
javacomp.android.activities.Activity2: onStop
javacomp.android.activities.Activity2: onDestroy
Zuerst wird onPause auf Activity2 angewendet, dann erfolgt der Zustandswechsel von „ver-
deckt“ zu „im Vordergrund“ für Activity1 mit Aufruf von onRestart, onStart und onResume.
Nachdem Activity1 wieder zu sehen ist, wird onStop auf Activity2 angewendet. Da man zu
einer Activity, die vom Activity-Keller entfernt wurde, nie mehr zurückkehren kann, wird
auf Activity2 auch noch onDestroy aufgerufen. Das Activity2-Objekt kann anschließend
durch die Garbage Collection entsorgt werden.
Mit Hilfe der Log-Ausgaben lässt sich auch untersuchen, was passiert, wenn das Android-
Gerät um 90 Grad gedreht wird (also vom Hochformat zum Querformat oder umgekehrt):
 
Search WWH ::




Custom Search