Datenklasse nicht löschen oder wiederherstellbar machen

  • Antworten:10
Christopher
  • Forum-Beiträge: 38

20.09.2011, 14:50:19 via Website

Hallo,

ich habe folgendes Problem: In meiner App speichere ich am Anfang Daten die ständig gebraucht werden in eine Datenklasse die durch Application erweitert wird.
So lange die App im Vordergrund läuft funktioniert auch alles super. Wenn ich jedoch eine andere App öffne werden scheinbar die Daten aus meiner Datenklasse gelöscht und ich muss sie wieder neu laden.
Gibt es eine Möglichkeit das zu verhindern? Was ich bisher gelesen habe könnte man die Klasse wohl über savedInstanceState speichern und bei onResume wieder laden. Jedoch müsste ich sie dazu parcelable machen, was angesichts dessen das in der Klasse mehrere Hashmaps und Listen gespeichert sind wohl auch nicht so leicht ist oder?
Sonst hab ich noch gelesen, das man statt einer Datenklasse auch "Singleton" verwenden kann. Würden mir da solche Probleme erspart bleiben?

Viele Grüße

Christopher

Antworten
Maximilian O
  • Forum-Beiträge: 990

20.09.2011, 15:46:46 via Website

Hi Christopher,
wenn ich dich richtig verstanden habe, möchtest du Daten abspeichern, welche du aber jederzeit schnell verwenden kannst, richtig?
ALso ich glaube SharedPreferneces sollte dein Freund sein :)
Dort werden alle Daten in einer xml abgespeichert, auf welche du dann, ähnlich wie in der string.xml zugreifen kannst.
MfG Maximilian

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Christopher
  • Forum-Beiträge: 38

20.09.2011, 16:05:02 via Website

Das Problem ist das ich recht viele Daten speichern muss, die in Hashmaps oder in Listen liegen. In den Shared Preferences kann man ja nur primitive Datentypen ablegen.

Antworten
Maximilian O
  • Forum-Beiträge: 990

20.09.2011, 16:08:08 via Website

und was hast du gegen eine datenbank mit blob?
MfG

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Christopher
  • Forum-Beiträge: 38

20.09.2011, 16:28:30 via Website

hm hör ich gerad das erste mal ;)
wie soll man einen blob zu den sharedpreferences hinzufügen? Hast du noch andere Vorschläge?

Antworten
Maximilian O
  • Forum-Beiträge: 990

20.09.2011, 17:03:06 via Website

Einen blob legt man in der DB ab.
Siehe Link
MfG

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Gelöschter Account
  • Forum-Beiträge: 294

20.09.2011, 18:20:39 via Website

Um welche Daten handelt es sich? Eine HashMap hat ja auch eine irgendwie geartete Struktur die man in einer Datenbank abbilden könnte. Blob wäre da für mich die letzte Lösung.

Was sind das für Daten?

Antworten
Maximilian O
  • Forum-Beiträge: 990

20.09.2011, 18:31:03 via Website

Naja, du kannst damit zB einfach ein Bild in die Datebank legen, welches du denn wieder dekorideren kannst.
MfG

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Gelöschter Account
  • Forum-Beiträge: 294

20.09.2011, 23:12:07 via Website

HashMap/Listen und Bilder? Im OP stand Folgendes:

In meiner App speichere ich am Anfang Daten die ständig gebraucht werden in eine Datenklasse die durch Application erweitert wird.

Ich denke es handelt sich um strukturierte Daten die man in solcher Form wunderbar in einer DB ablegen könnte. Das ist aber nur geraten - deshalb habe ich nach der Art der Daten gefragt.

Antworten
Christopher
  • Forum-Beiträge: 38

21.09.2011, 16:33:26 via Website

Bei den Daten handelt es sich um Hashmaps, die auch Objekte wie JSONArrays enthalten, Listen, und ansonsten primitive Datentypen wie int, boolean usw...

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

21.09.2011, 16:37:28 via Website

Du hast doch in deiner Activity eine onSaveInstanceState(Bundle) Methode.
Speicher hier deine Daten im Bundle und stell sie einfach beim onRestoreInstanceState(Bundle) wieder her.
Die Klassen, die du speicherst müssen halt nur Serializable implementieren.

Ich mein die Methoden heissen so, oder so ähnlich.
Das wäre quasi die schnellste Lösung für dein Problem.

— geändert am 21.09.2011, 16:38:08

Antworten