Activity Lifecycle - einige Fragen...

U

user7

Neues Mitglied
1
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
 
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ß
 
  • Danke
Reaktionen: user7
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?
 
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 )
 
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?
 
Ich würde schon in onPause() zwischenspeichern. Da Deine Activity z.B. in diesen Zustand versetzt wird wenn ein Anruf eingeht.
 

Ähnliche Themen

M
  • maksimilian
Antworten
5
Aufrufe
857
maksimilian
M
M
  • maksimilian
Antworten
15
Aufrufe
1.699
maksimilian
M
M
Antworten
2
Aufrufe
629
Mozart40
M
Zurück
Oben Unten