zustand einer Activity speichern

  • Hallo zusammen,


    ich würde gerne wenn ich eine activität verlasse den zustand dieser activität speichern, so dass wenn ich wieder in dieser reingehen alles wie vorher ist.


    Ich hab nach etwas recherche so implemnetiert:



    das problem ist, dass wenn ich die Aktivität verlasse und wieder da rein gehen, alle meine Einträge verschwinden.


    Kann mir einer dabei helfen?
    danke

  • Du speicherst deine Daten doch schon mit hilfe der onSaveInstanceState und liest sie mit der onRestoreInstanceState wieder aus.



    5.3 Wann wird die onSaveInstanceState() Methode aufgerufen?
    Wie bereits einige Male in diesem Beitrag erwähnt, ruft das Android System die Callback-Methode onSaveInstanceState() nur in bestimmten Situationen auf.
    In der folgenden Übersicht sind die Situationen aufgeführt, in denen eine Activity und ihre Fragmente zerstört werden. Dabei ist für jede Situation angemerkt, ob die onSaveInstanceState() Methode aufgerufen wird oder nicht.
    Situationen in denen die Activity-Instanz vom Android System zerstört wird:

    • Verlassen der App mit dem Back-Button – Das Android System wertet diese Situation als endgültiges Verlassen der Anwendung. Daher wird die onSaveInstanceState() Methode nicht aufgerufen und somit der Activity-Zustand nicht gespeichert.
    • Mit dem Up-Button zurück navigieren – In der Standardeinstellung der Activity interpretiert das Android System die Situation so, als ob der Benutzer zum Hauptbildschirm der App möchte und nicht das Wiederherstellen des vorherigen Zustands erwartet. Daher wird die onSaveInstanceState() Methode nicht aufgerufen und somit der Activity-Zustand nicht gespeichert.
    • Die Activity wird mit finish() beendet – Die Activity wird manuell beendet. Das Android System versucht daher nicht den Zustand zu erhalten. Auch in diesem Fall wird die onSaveInstanceState() Methode nicht aufgerufen und somit der Activity-Zustand nicht gespeichert.
    • Der App-Prozess wird direkt beendet – Das Android System benötigt Speicherplatz und schließt daher gestoppte Anwendungen, indem es den zugehörigen Prozess direkt beendet. Vorher wird die onSaveInstanceState() Methode aufgerufen und somit der Activity-Zustand gespeichert.
    • Rotation des Bildschirms – In diesem Fall wird die angezeigte Activity vom Android System zerstört und sofort wieder neu erstellt. Vorher wird die onSaveInstanceState() Methode aufgerufen und der Activity-Zustand gespeichert. Diese Situation ist ideal, um die Implementierung der onSaveInstanceState() Methode zu testen.

    Das zeigt die vielleicht auch warum deine daten nicht gesichert und wieder zurück gesetzwerden.
    wenn du deine Daten immer sichern willst würde ich es mit sharedpreferences machen.


    In welcher callback Methode du das machst solltest du dir in dem Lifecycle anschauen was da für dich sinn macht.

  • gelöst :)


  • Ich hab zu diesem Tehma ein weitere Problem:


    Ich kann mit SharedPreferences den Inhalt also String speichern, wie oben.


    In meinem Fall jetzt: ich ändere in java code die xml datei, soll heißen ich füge layouts und button hinzu (in java code)
    wie kann ich soche Änderungen bei einem activity wechsel speichern???

  • So Ich noch mal.


    Bist du schon weiter gekommen?


    Wie viele Layouts und Views erstellst du den dynamisch? Sind das immer die gleichen?


    Wenn ja kannst du sie mit einer Variablen zählen, und die Speichern, und dann wieder erzeugen mit z.B. einer for schleife in der onResume. Inhalte der Views vielleicht in ein Feld Packen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!