Ответ 1
В Parcelable
существует константа, называемая CONTENTS_FILE_DESCRIPTOR
, которая предназначена для использования в describeContents()
для создания возвращаемого значения битмаски.
Описание CONTENTS_FILE_DESCRIPTOR
в API ref:
Бит-маски для использования с describeContents(): каждый бит представляет собой объект, который считается потенциально значимым при сортировке.
Что действительно означает: если вам нужно поместить объект FileDescriptor
в Parcelable, вы должны/должны указать CONTENTS_FILE_DESCRIPTOR
как возвращаемое значение для описанияContents(), то есть с помощью < специального объекта "(в describeContents()
description) они действительно означают: FileDescriptor
.
Вся эта функциональность Parcelable выглядит незавершенной (читай: имеет плохой дизайн). В документах есть еще одна странная вещь:
Классы, реализующие интерфейс Parcelable, также должны иметь статическое поле CREATOR, которое представляет собой объект, реализующий интерфейс Parcelable.Creator
Реализация множественного наследования по правилам, определенным в читаемой человеком форме?: -)
Похоже, программист на С++ разработал Parceable
, и в какой-то момент он понял: "Ах, черт возьми, в Java нет множественного наследования...: -)