Activity Lifecycle - einige Fragen...

  • 5 Antworten
  • Neuester Beitrag
Diskutiere Activity Lifecycle - einige Fragen... im Android App Entwicklung im Bereich Betriebssysteme & Apps.
U

user7

Neues Mitglied
Hallo!

Ich muss gestehen, dass ich einige Probleme beim Verständnis der verschiedenen Activity-Lifecycle-Funktionen habe!

z.B. habe ich diese Dartstellung gefunden.

Jetzt frage ich mich, wozu "onStop" und "onDestroy" gut sein sollen, wenn es doch auch möglich ist, dass die Activity direkt nach "onPause" beendet wird? Um sicherzugehen, dass nichts verlorengeht, muss ich damit doch eh alle "backups" schon in "onPause" machen, oder?

Außerdem habe ich beim Lesen der Doku leider nicht wirklich verstanden, welche Arten von Aufgaben in welche Funktionen gehören und welche Informationen wann verloren gehen. Wenn ich z.B. bei "OnCreate" einen ButtonListener für meine GUI gesetzt hab, geht der irgendwann einmal verloren und ich muss ihn in "onResume" oder in "onStart" neu setzten? Gibt es generell eine Faustregel, welche Aufgaben wohin gehören?

Hoffe, ich hab mich halbwegs verständlich ausgedrückt...

Viele Grüße,
user7
 
M

muck

Ambitioniertes Mitglied
Gibt es generell eine Faustregel, welche Aufgaben wohin gehören?
Nein.

Desweiteren nutze die Doku von Google. Ich hab Dein Link zwar nicht richtig angeschaut aber besser ist das hier:
Activity | Android Developers

Vielleicht als Tipp:
Überschreibe in Deiner Activity mal alle Funktionen:
Code:
@Override
public void onRestart() {
 super.onRestart();
}
@Override
public void onStart() {
 super.onStart();
}
@Override
public void onResume() {
 super.onResume();
}
@Override
public void onPause() {
 super.onPause();
}
@Override
public void onStop() {
 super.onStop();
}
@Override
public void onDestroy() {
 super.onDestroy();
}
setze Breakpoints und schau wann er wo durchläuft.

Nach onPause wird eine Activity nie beendet (Es sei denn Du nimmst den Akku raus) Diese 6 Funktionen werden immer aufgerufen, wenn Du sie nicht überschreibst bekommst Du es nur nicht mit.

Gruß
 
U

user7

Neues Mitglied
Erstmal danke für die vorherigen Tipps... :)

muck schrieb:
Nach onPause wird eine Activity nie beendet (Es sei denn Du nimmst den Akku raus) Diese 6 Funktionen werden immer aufgerufen, wenn Du sie nicht überschreibst bekommst Du es nur nicht mit.
...auf der verlinkten Seite schreibt der Autor, zu den "Kill"-Linien, die von OnPause direkt zum Ende des Programms führen:

Those indicate the OS may kill the Activity when resources are low, so onStop() and/or onDestroy() might not be called.
Heißt das, das sind so seltene und unwahrscheinliche Fälle, dass man sie ignorieren kann?
 
K

ko5tik

Stammgast
muck schrieb:
Nach onPause wird eine Activity nie beendet (Es sei denn Du nimmst den Akku raus)
Es ist nicht ganz richtig - OS kann es tun wenn es lust dazu hat ( so ist es auch in Doku beschrieben )
 
U

user7

Neues Mitglied
Und was bedeutet das jetzt in der Praxis? Doch zur Sicherheit alles in onPause() packen oder nach dem "normalen" Life Cycle programmieren und hoffen, dass alles gut geht?
 
M

muck

Ambitioniertes Mitglied
Ich würde schon in onPause() zwischenspeichern. Da Deine Activity z.B. in diesen Zustand versetzt wird wenn ein Anruf eingeht.
 
Ähnliche Themen - Activity Lifecycle - einige Fragen... Antworten Datum
8
15
5