Кто-нибудь знает, где/когда вызывается этот метод Parcelable?
@Override
public int describeContents() {
return 0;
}
Это нужно переоценить. Но стоит ли мне подумать над чем-то полезным?
Кто-нибудь знает, где/когда вызывается этот метод Parcelable?
@Override
public int describeContents() {
return 0;
}
Это нужно переоценить. Но стоит ли мне подумать над чем-то полезным?
В 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 нет множественного наследования...: -)
Существует только два возможных значения: 0 или CONTENTS_FILE_DESCRIPTOR
если вы сериализуете POLO, это значение всегда должно быть 0, CONTENTS_FILE_DESCRIPTOR зарезервирован для ParcelFileDescriptor, который может сериализовать дескриптор файла (FD) в * unix системе.