Wir haben uns gefragt, ob bei der Verwendung von Bundle
mit serialisierbaren oder parzellierbaren Objekten wann das Marshalling tatsächlich stattfindet? Sobald du es in das Bündel legst? Da Bündel meist dazu verwendet werden, Daten zwischen zwei Bildschirmen einfach weiterzugeben (wir reden hier nicht einmal über IPC!), Scheint es wenig Sinn zu haben, ein Objekt zu ordnen, da es die ganze Zeit im Speicher bleibt, nein ?Wird ein serialisierbares Objekt immer serialisiert, wenn es in einem Bündel abgelegt wird?
Sind wir recht in der Annahme, dass Rangier (sei es Java Serialisierung oder Android Parzellierung) geschieht nur, wenn
- die Daten an einen anderen Prozess übergeben werden müssen, beispielsweise während RMI, oder
- die Komponente (Aktivität oder Service) wird zerstört und Instanz-Zustand muss auf die Festplatte geschrieben werden?
Ich habe Android Framework Ingenieure gesehen (ich glaube, es Dianne Hackborn war) sagen, dass man Parcelable
statt Serializable
verwenden sollte, da erstere viel schneller ist. Wie viel schneller? Und wird das überhaupt einen Unterschied machen, wenn das Objekt sowieso eh nicht gemarshallt wird (vorausgesetzt, unsere Annahmen hierzu waren richtig)?
Haftungsausschluss: das ist ziemlich viel, was ich von der Fehlersuche in unserer App bekommen habe, für das, was es wert ist. Das Lesen des Quellcodes, der voller Variablen namens 'N' und' M' ist, ist nicht gerade erfreulich. Vielleicht habe ich etwas verpasst :-) – Matthias
Disclaimer 2: Um Missverständnisse zu vermeiden, waren diese Variablen Teil des Bundle-Quellcodes unser eigenes :-D – Matthias