Java Reference
In-Depth Information
javacomp.android.activities.Activity1: onStop
javacomp.android.activities.Activity1: onDestroy
javacomp.android.activities.Activity1: onCreate
javacomp.android.activities.Activity1: onStart
javacomp.android.activities.Activity1: onResume
Wie man sieht, wird die aktuelle Activity komplett beendet (onStop, onDestroy), ein neues
Activity-Objekt erzeugt und dieses initialisiert (onCreate, onStart, onResume). Dass ein
neues Activity-Objekt erzeugt wird, ist an der obigen Ausgabe nicht zu erkennen; man kann
das aber durch eine weitere Log-Ausgabe im Konstruktor der Klasse Activity1 nachweisen.
Durch eine Ausgabe im Konstruktor kann man auch sehr schön zeigen, dass es mehrere
Objekte derselben Activity-Klasse zu einem Zeitpunkt auf dem Activity-Keller geben kann.
Zu diesem Zweck habe ich unserer Activity2 einen weiteren Button hinzugefügt, mit der
wie in Activity1 über einen Intent die Activity2 erneut gestartet wird (also eine Art rekur-
siver Aufruf von Activity2). Den Objekten habe ich eine laufende Nummer im Konstruktor
zugewiesen und diese Nummer in die Log-Ausgaben geschrieben. Man kann dann sehr
schön sehen, dass bei jedem Activity-Start ein neues Objekt erzeugt und auf den Activity-
Keller gelegt wird. Beim Zurückgehen ist auch gut erkennbar, wie jedes dieser Objekte sei-
nen eigenen Lebenszyklus hat.
167 Service und Activity im Vergleich
Ein Service hat viele Ähnlichkeiten mit einer Activity, aber auch einen wesentlichen Unter-
schied: Ein Service hat keine Benutzeroberfl äche. Wie eine Activity wird ein Service über
einen expliziten oder impliziten Intent gestartet. Ein Service kann damit von anderen Bau-
steinen derselben Anwendung oder aber auch einer anderen Anwendung benutzt werden.
Ein Service muss wie eine Activity in der Konfi gurationsdatei AndroidManifest.xml verein-
bart werden. Auch in diesem Fall kann man bestimmen, dass der Service in einem eigenen
Prozess laufen soll. Wenn er durch einen impliziten Intent gestartet werden soll, muss in
der Konfi gurationsdatei ein Intent-Filter für ihn angelegt werden. Auch ein Service muss
von einer vorgegebenen Klasse (in diesem Fall von der Klasse Service) abgeleitet werden
und einige Methoden ihrer Basisklasse überschreiben. Diese Methoden werden vom Frame-
work im Rahmen des Lebenszyklus aufgerufen, den ein Service-Objekt durchläu . Es gibt
zwei Sorten von Services: ungebundene und gebundene Services. Die Bezeichnung ist nicht
besonders aussagekrä ig. Anhand der folgenden Beispiele wird man den Unterschied hof-
fentlich besser verstehen. Wir beginnen mit einem ungebundenen Service.
 
Search WWH ::




Custom Search