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

Was passiert beim Kippen des Handys?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Samsung I7500, 25.10.2009.

  1. Samsung I7500, 25.10.2009 #1
    Samsung I7500

    Samsung I7500 Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    359
    Erhaltene Danke:
    4
    Registriert seit:
    20.06.2009
    Moinsen!

    Wenn ich irgendwas in meiner Anwendung mache, und das Handy dann kippe, ist die Anwendung danach zurückgesetzt, als wäre die Activity frisch gestartet. Zudem werden dadurch lustigerweise noch Fehler verursacht. Daher die Frage, was genau passiert beim Kippen des Handys?

    Wird die activity neu gestartet (obwohl diese mit Single Flag läuft)? Kann ich das irgendwie unterbinden und die Activity einfach nur drehen oder halt so steuern, dass meine Informationen bzw. bereits getätigten Tätigkeiten nicht einfach so zurückgesetzt werden?

    Merci... :)
     
  2. Shinigami, 25.10.2009 #2
    Shinigami

    Shinigami Fortgeschrittenes Mitglied

    Beiträge:
    436
    Erhaltene Danke:
    69
    Registriert seit:
    08.04.2009
  3. SirMArtin, 26.10.2009 #3
    SirMArtin

    SirMArtin freier Samsungsupporter

    Beiträge:
    113
    Erhaltene Danke:
    7
    Registriert seit:
    05.08.2009
    onCreate wird nach dem Rotieren erneut aufgerufen. :(

    Ich speichere mit onSaveInstanceState (wird vor dem Drehen ausgeführt) den Zustand der Activity und lade diesen nach dem drehen wieder mit onRestoreInstanceState (wird nach dem Drehen aufgerufen...

    SirMArtin
     
  4. lindijones, 16.06.2010 #4
    lindijones

    lindijones Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    22.04.2010
    Hallo!

    Wie bzw. wo genau muss man diese beiden Methoden setzen damit vor dem Rotieren die Instanz gespeichert und nach dem Rotieren wieder restored wird?

    Grüßle
     
  5. the_alien, 16.06.2010 #5
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
  6. lindijones, 16.06.2010 #6
    lindijones

    lindijones Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    22.04.2010
    Hallo,

    den link kann man leider nur sehen, wenn man sich registriert hat.

    Die Methode "onSaveInstanceState(Bundle)" wird automatisch aufgerufen, bevor die Activity in den Hintergrund befördert wird, ja?
    Und damit bekommt "onCreate" das so gesicherte Bundle beim neuen Aufruf der Acticity wieder, oder?
    Die Frage ist nun: Wo wird das Bundle denn gesichert?
    Reden wir hier nur von einer Zwischenspeicherung im RAM solange die App offen ist und nur die eine Activity in den Hintergrund rutscht?
    Denn ich habe nun ein Boolean Flag eingeführt, welches bei einer Rotation nicht mehr alle Methoden der onCreate nochmal ausführen soll. Das funktioniert nun soweit. Allerdings geht diese Information flöten, nachdem man die Anwendung komplett schliesst. Ist das Bundle damit verloren?

    Gruß
     
  7. the_alien, 16.06.2010 #7
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Nein das Bundle geht nicht verloren, dafür ists ja da ;)

    Wegen des Links: Such mal nach "Developing Orientation-Aware Android Applications", der erste Link bei Google ist der Richtige (daher hatte ich ihn auch, verrückt dass er über Google geht aber wenn man ihn kopiert nicht...).
     
  8. lindijones, 16.06.2010 #8
    lindijones

    lindijones Neuer Benutzer

    Beiträge:
    6
    Erhaltene Danke:
    0
    Registriert seit:
    22.04.2010
    Das ist seltsam, denn innerhalb der offenen Activity wird der Boolean Wert beibehalten. Wenn ich die Activity aber mit den "Zurück"-Knopf schliesse, ist nach dem Neustart dieser Boolean Wert wieder auf False.
    Vermutlich weil die gesamte Klasseninstanz wieder neu gesetzt wird. Und da wird auch der Boolean wieder auf "false" gesetzt, oder?
    Hmm..

    Grüßle
     
  9. FelixL, 16.06.2010 #9
    FelixL

    FelixL Ehrenmitglied

    Beiträge:
    4,855
    Erhaltene Danke:
    754
    Registriert seit:
    26.11.2009
    Phone:
    Wileyfox Swift, HTC One M8
  10. Fr4gg0r, 16.06.2010 #10
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Solange du die onKeyDown(...) nicht überschreibst, ruft der Back Key standardmäßig finish() bzw. die onDestroy() Methode auf.
    Der Home Button ruft lediglich onStop() auf.
     

Diese Seite empfehlen