Ich möchte Marshall und Marshall eine Klasse, die Parcelable
zu/von einem Byte-Array implementiert Marshall und Unmarshall. Ich bin mir der Tatsache bewusst, dass die Parcelable-Darstellung nicht stabil ist und daher nicht für die langfristige Speicherung von Instanzen gedacht ist. Aber ich habe einen Anwendungsfall, in dem ich ein Objekt serialisieren muss und es ist kein Showstopper, wenn das Entpacken wegen einer internen Android-Änderung fehlschlägt. Außerdem implementiert die Klasse bereits die Schnittstelle Parcelable
.Wie man ein Parcelable zu einem Byte-Array mit Hilfe von Parcel marshall und unmarshall?
Wie lautet die Klasse MyClass implements Parcelable
? Wie kann ich die Schnittstelle Parcelable
zum Marshalling/Unmarshalling verwenden?
'parcel.setDataPosition (0); // das ist extrem wichtig! 'das hilft mir sehr. Das Fehlen von Android-Dokument davon ist wirklich scheiße. –
Vielen Dank für diesen Tipp. Das Implementieren von Parcelable (das extrem fehleranfällig ist und Sie sinnlose Laufzeitausnahmen und verärgerte Kunden erhalten, wenn es nicht richtig gemacht wird) ist eine solche PITA - ich vermeide Parcelables in meinem Code insgesamt und verwende Serialisables. Auf modernen Telefonen ist der Geschwindigkeitshit kaum wahrnehmbar. –
Das einzige Problem bei diesem Ansatz besteht jedoch darin, dass das Unmarshalling einer Unterklasse der Klasse, die Parcelable implementiert, nicht so einfach ist. Du musst zusätzliche Informationen weitergeben, anhand derer du den richtigen Schöpfer beurteilen kannst. – bosphere