wake-up-neo.com

Aktivitätsstatus in der onPause speichern

Ich habe eine Variable, die ich mit onSaveInstanceState erfolgreich gespeichert und wiederhergestellt habe

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState); // the UI component values are saved here.
    outState.putDouble("VALUE", liter);
    Toast.makeText(this, "Activity state saved", Toast.LENGTH_LONG).show();
}

Dies funktioniert jedoch nur, wenn die Aktivität zerstört wird. Ich möchte die gleiche Variable speichern, indem ich die onPause () -Methode überschreibe und zurückkehre, wenn die Aktivität nicht mehr angehalten wurde. Ideen, wie dies getan werden kann, werden sehr geschätzt

17
Waggoner_Keith

Wie Sie herausgefunden haben, ist onSaveInstanceState nur in Situationen nützlich, in denen Sie die gleiche sogenannte "Instanz" der Activity neu erstellen müssen, nachdem sie vom Betriebssystem zerstört wurde. Dies liegt in der Regel daran, dass sie sich zu weit im hinteren Stack befindet, um am Leben zu bleiben Gedächtnisdruck.

Das Speichern Ihrer Daten in onPause ist in der Tat der Weg zu einer Persistenz, die über eine einzelne Ausführung Ihrer Aktivität hinausgeht. Damit dies funktioniert, stehen Ihnen mehrere Optionen zur Verfügung:

  • Gemeinsame Einstellungen
  • Dateien
  • Datenbanken
  • Anbieter von Inhalten

Ich empfehle Ihnen, diese Dokumentation zu lesen, um mehr über jede dieser Optionen zu erfahren:

http://developer.Android.com/guide/topics/data/data-storage.html

35
lyricsboy

Sie können Ihre Variable foo einfach dem Klassenmitglied mFoo in onPause zuweisen, vorausgesetzt, Sie speichern mFoo auch im Statusbündel in onSaveInstanceState. Dasselbe gilt für das Wiederherstellungsszenario.

4
Hamid Fadishei

Wenn Sie den Aktivitätsstatus in den gemeinsamen Einstellungen speichern möchten, können Sie die GNStateManager-Komponente der von mir geschriebenen Bibliothek auschecken, um das Speichern und Abrufen der erforderlichen Felder der mit my @GNState-Annotation gekennzeichneten Aktivität zu erleichtern. Es ist einfach zu bedienen. Andere Einzelobjektklassenobjektzustände können ebenfalls gespeichert werden. Informationen zu Setup und Verwendung finden Sie hier: https://github.com/noxiouswinter/gnlib_Android/wiki/gnstatemanager

0
jinais