Antworten:
In call ist eine Konstante definiert Parcelable, CONTENTS_FILE_DESCRIPTORdie describeContents()zum Erstellen eines Bitmasken-Rückgabewerts verwendet werden soll.
Beschreibung für CONTENTS_FILE_DESCRIPTORin der API-Referenz lautet:
Bitmasken zur Verwendung mit descriptionContents (): Jedes Bit stellt eine Art Objekt dar, das beim Marshalling eine potenzielle besondere Bedeutung hat.
Was wirklich bedeutet: Wenn Sie ein FileDescriptorObjekt in Parcelable einfügen müssen, sollten / müssen Sie CONTENTS_FILE_DESCRIPTORals Rückgabewert von descriptionContents () angeben , dh mit " Spezialobjekt " (in describeContents()der Beschreibung) meinen sie wirklich : FileDescriptor.
Diese gesamte Parcelable- Funktionalität sieht unvollendet aus (lesen Sie: hat schlechtes Design). Es gibt noch eine andere seltsame Sache in den Dokumenten:
Klassen, die die Parcelable-Schnittstelle implementieren, müssen auch ein statisches Feld namens CREATOR haben, ein Objekt, das die Parcelable.Creator-Schnittstelle implementiert
Mehrfachvererbung durch Regeln implementieren, die in lesbarer Form definiert sind? :-)
Es scheint, als hätte ein C ++ - Programmierer entworfen Parceableund irgendwann wurde ihm klar: Oh, verdammt, es gibt keine Mehrfachvererbung in Java ... :-)
describeContents()0 zurückgegeben werden sollte, wenn es "nichts Besonderes an sich hat" . Was eigentlich nichts erklärt. Ihre Erklärung ist so viel klarer!
Es gibt nur zwei mögliche Werte, 0 oder CONTENTS_FILE_DESCRIPTOR
Wenn Sie POLO serialisieren, sollte dieser Wert immer 0 sein. Der CONTENTS_FILE_DESCRIPTOR ist für ParcelFileDescriptor reserviert , wodurch ein File Descriptor (FD) im * Unix-System serialisiert werden kann.