Android Tutorial – Teil 4
Im 4. Teil meiner Artikelreihe zum Thema Android Entwicklung will ich näher auf die Activitys eingehen.
Activity
Wie bereits erwähnt ist eine Activity eine Useraktion. D.h. diese Useraktion stellt ein Fenster dar, welches vom Benutzer Eingaben erwartet. Eine Activity erstellt man indem man eine Klasse definiert, welche von eben jener Klasse erbt. Die vom Wizard erstellte Klasse bei einem neuen Android Projekt ruft in seiner onCreate Methode die setContentView Funktion auf. Durch diese wird der Activity entweder eine View, oder direkt ein Layout über die Ressourcen ID zugeweisen. Das ist im Prinzip alles was man benötigt, um eine Useraktion auf den Bildschirm zu bringen. Doch moment: onCreate?
Der Lebenszyklus einer Activity
onCreate ist eine jener Funktionen, welche den Lebenszyklus einer Aktion definieren. Dabei ist die onCreate der Einsprungspunkt, also quasi die Funktion, welche unsere Activiy zum Leben erweckt. Eine Activity kann nur einen von fest definierten Zuständen haben. Hier eine Liste dieser möglichen Zustände:
- Running
Die Aktion wird gerade ausgeführt und ist die einzige am Gerät. Sie wird am Bildschirm angezeigt. - Paused
Die Aktion hat den Focus verloren und ist von einer anderen Activity verdeckt (sollte diese keine Full-Screen-Activity sein). Der aktuelle Zustand der Activity ist gespeichert. Das Betriebssystem kann das Programm aus Speichergründen entfernen. - Stopped
Die Aktion ist vollständig von einer anderen Activity verdeckt worden und gestoppt. Auch hier ist der aktuelle Zustand des Programms noch im Speicher. Das Betriebssystem kann die Activity aus Speichergründen entfernen. - Killed
Eine Aktion wird vom Betriebssystem aus dem Speicher gelöscht. Sollte diese wieder benötigt werden, muss sie neu gestartet werden.
Anders als ’normale‘ Desktop Programme können Programme auf mobilen Endgeräten nicht nur laufen oder eben nicht, sondern jederzeit pausiert und wieder fortgesetzt werden. Am Handy können, ja müssen sogar ankommende Telefonate alle anderen laufenden Programme pausieren bzw. stoppen, die diese oberste Priorität haben. Das Betriebssystem verwaltet seine Useraktionen in einem Stack, wobei hier nur die oberste Activity den Zustand ‚running‘ hat. Mobile Systeme können immer nur eine Activity anzeigen und nicht mehrere vom selben oder unterschiedlichen Programmen.
Hier eine Grafik um den Lebenszyklus besser verstehen zu können:
Hier noch ein paar wichtige Begriffe:
- Gesamter Lebenszyklus (Entire lifetime)
Der gesamte Lebenszyklus von onCreate() bis onDestroy(). - Sichtbarer Lebenszyklus (Visible lifetime)
Sichtbar ist eine Activity zwischen den Funktionen onStart() und onStop(). - Vordergrund Lebenszyklus (Foreground lifetime)
Alles zwischen onResume() und onPause(). In diesem Zeitraum ist die Activity im Vordergrund, also ‚running‘ und sichtbar. Eine Activity kann unter umständen oft zwischen ‚running‘ und ‚paused‘ hin und her geschalten werden, deshalb sollten die beiden Funktionen möglichst wenig Logik enthalten.
Soweit zur Activity.
Teil 1 | Teil 2 | Teil 3 | Teil 4