1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Activity Lifecycle - einige Fragen...

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von user7, 10.03.2011.

  1. user7, 10.03.2011 #1
    user7

    user7 Threadstarter Junior Mitglied

    Beiträge:
    39
    Erhaltene Danke:
    1
    Registriert seit:
    07.03.2011
    Phone:
    Sony Ericsson Xperia Arc
    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
     
  2. muck, 10.03.2011 #2
    muck

    muck Android-Hilfe.de Mitglied

    Beiträge:
    62
    Erhaltene Danke:
    7
    Registriert seit:
    07.11.2010
    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ß
     
    user7 bedankt sich.
  3. user7, 11.03.2011 #3
    user7

    user7 Threadstarter Junior Mitglied

    Beiträge:
    39
    Erhaltene Danke:
    1
    Registriert seit:
    07.03.2011
    Phone:
    Sony Ericsson Xperia Arc
    Erstmal danke für die vorherigen Tipps... :)

    ...auf der verlinkten Seite schreibt der Autor, zu den "Kill"-Linien, die von OnPause direkt zum Ende des Programms führen:

    Heißt das, das sind so seltene und unwahrscheinliche Fälle, dass man sie ignorieren kann?
     
  4. ko5tik, 11.03.2011 #4
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Es ist nicht ganz richtig - OS kann es tun wenn es lust dazu hat ( so ist es auch in Doku beschrieben )
     
  5. user7, 11.03.2011 #5
    user7

    user7 Threadstarter Junior Mitglied

    Beiträge:
    39
    Erhaltene Danke:
    1
    Registriert seit:
    07.03.2011
    Phone:
    Sony Ericsson Xperia Arc
    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?
     
  6. muck, 11.03.2011 #6
    muck

    muck Android-Hilfe.de Mitglied

    Beiträge:
    62
    Erhaltene Danke:
    7
    Registriert seit:
    07.11.2010
    Ich würde schon in onPause() zwischenspeichern. Da Deine Activity z.B. in diesen Zustand versetzt wird wenn ein Anruf eingeht.
     

Diese Seite empfehlen