Android - Speichern Parcelable-Daten in eine Datei
Ich verwendet, um zu verwenden Serialisierbare Objekte, um Sie zu speichern im Dateisystem, und Lesen Sie Sie, um zu tun, was ich will. Aber Serialisierung ist langsam, wenn Sie zum übergeben von Daten zwischen Aktivitäten, so Las ich, als es empfohlen, zu verwenden Parcelable. Dann habe ich es gemacht und ja, es ist schneller ! Aber jetzt, ich habe ein kleines problem. Da Parcelable ist optimiert für IPC, dann Sie sind nicht serialisierbar und können nicht in einer Datei gespeichert werden. Also ich möchte wissen, ob es möglich ist, es zu tun.
Auch, Wenn ich entscheiden, zu implementieren, die sowohl Parcelable-und Serializable-interface für meine Klasse, aber verwenden Sie nur das Parcelable zum übergeben von Daten zwischen meine Tätigkeiten, ich wäre in der Lage, speichern Sie die Klasse in eine Datei. Aber ich denke, als da ich serializable (nur speichern, nicht zum übergeben von Daten), ist dies nicht eine gute Idee, hum ?
Dachte ich auch verwenden Gson-Bibliothek zum serialisieren von Daten aus der Klasse, und speichern Sie das JSON in eine Datei, und die Wiederverwendung von Gson zu JSON Deserialisieren, um meine Parcelable-Objekt. Tut, scheint es eine gute Idee sein ? Was ist mit performance ?
Danke an alle für Eure Antworten!
J.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur tun Zusammenhang.getFilesDir() und java.io.ObjectInputStream und java.io.ObjectOutputStream.
Auch, mit Hinblick auf die "Parcelable jetzt nicht serializable". Diese nicht ganz viel Sinn machen, da Parcelable in ein interface, keine Klasse, die Sie erweitern.
So,
sollte gut funktionieren. Sobald Sie Lesen und schreiben das Objekt auf das Dateisystem, die Parcelable-interface wird immer noch funktionieren. Es ist nur eine Schnittstelle.
Ich muss zugeben, ich habe es nicht ausprobiert, aber es ist das, was ich schrieb heute, und ich werde das schreiben der unit-test morgen.
Hoffe, das hilft.
Hier ist ein anderer Ansatz, wenn-wie Sie sagen, es ist ein Konflikt zwischen der Parcelable-und Serializable-interfaces. (Wieder, das macht keinen Sinn, aber ich werde Ihnen Vertrauen, bis ich zum Schluss meiner unit-tests morgen)...
Denken Sie über diese:
OOPS, lese gerade die javaDoc für marshall (), und es sagt NICHT SPEICHERN AUF der FESTPLATTE. Er sagt auch: "Verwenden Sie standard-Serialisierung speichern auf Festplatte" (paraphrase).
So, meine erste Antwort sollte es für Sie tun.
Haben Sie versuchen, verwenden Sie gemeinsame Vorlieben? Wenn Sie müssen zum speichern von Schlüssel-Werte. Außerdem wird es ein XML.