Sicherung des Programmzustandes

J

Javus

Neues Mitglied
0
Bei Verlassen meiner App soll der Programmzustand gesichert werden. Wird die App wieder aufgerufen, soll der gesicherte Zustand wiederhergestellt werden.

Leider habe ich noch keine sicheren Einstiegsunkte hierfür gefunden: Ich teste mit dem Eclipse-Debugger mit meinem über USB angeschlossenem HTC Wildfire S.

1.) Die Funktion "void onRestoreInstanceState(Bundle savedInstanceState)", die ich in meiner Activity implementiert habe, wird nie aufgerufen.

2.) Die Funktion "void onSaveInstanceState(Bundle outState)", die ich in meiner Activity implementiert habe, wird aufgerufen, wenn ich das Programm mit der Home-Taste des Handys verlasse. Bei Betätigung der Zurück-Taste erfolgt kein Aufruf.

3.) Die Funktion "void onCreate(Bundle savedInstanceState)", die ich in meiner Activity implementiert habe, wird bei Start meiner App aufgerufen. Wenn ich die App allerdings mit der Home-Taste verlassen habe, erfolgt kein Aufruf.

Hat jemand Erfahrung, wie man den Programmzustand zuverlässig sichern und wiederherstellen kann?

Oder ist man gezwungen, für jede Programmvariable eine XML-Resource anzulegen?
-------------------------------------------------------------------------------

Ich habe selbst nachgelesen. Ich versuch's erstmal mit onPause usw...
 
Zuletzt bearbeitet:
1. Speichern im onPause() -> nur dieses Callback wird garantiert aufgerufen.
2. Laden im onResume() , aber zuerst überprüfen ob es notwendig ist. Zum Beispiel, im onCreate() einen Flag zurücksetzen ( HIntergrund: es kann sein dasdeine Activity wieder im Vordergund geholt wurde, und es kein Grund besteht den Zustand erneut zu laden )


Resourcen speicherst du am Besten in SharedPreferences ( ich arbeite gerade ein einer Binding-Schicht die es vereinfachen soll: https://github.com/ko5tik/andject )
 
  • Danke
Reaktionen: Javus
ko5tik schrieb:
1. Speichern im onPause() -> nur dieses Callback wird garantiert aufgerufen.
2. Laden im onResume() , aber zuerst überprüfen ob es notwendig ist. Zum Beispiel, im onCreate() einen Flag zurücksetzen ( HIntergrund: es kann sein dasdeine Activity wieder im Vordergund geholt wurde, und es kein Grund besteht den Zustand erneut zu laden )


Resourcen speicherst du am Besten in SharedPreferences ( ich arbeite gerade ein einer Binding-Schicht die es vereinfachen soll: https://github.com/ko5tik/andject )

Ich habe festgetellt und auch nachgelesen, dass nach onCreate immer onResume aufgerufen wird. Ich werde das Laden des Zustandes aus onCreate raus- und in onResume reinnehmen.

Wozu onSave/RestoreInstanceState gut sein sollen ist mir ein Rätsel - aber egal.
 
Falsch. Date Laden solltest du in onResume() , aber nur dann, wenn es wirklich notwendig ist.
( sprich: in onCreate() eine:
private boolean bitteDiDatenLaden;

auf true setzen und im onResume überproüfen
 

Ähnliche Themen

M
Antworten
3
Aufrufe
149
moin
M
A
Antworten
1
Aufrufe
639
swa00
swa00
S
Antworten
11
Aufrufe
1.326
statik
S
Zurück
Oben Unten