Прогресс подготовки
В этом канале все вопросы уже отмечены

Когда Parcelable.describeContents() должен возвращать не 0?

Когда Parcelable.describeContents() должен возвращать не 0?
При реализации describeContents() обычно возвращают значение 0. Документация говорит, что этот метод описывает виды «специальных объектов», которые содержатся в Parcelable.

В текущей версии Android API существует только один вид таких объектов – FileDescriptor.
Для него имеется константа CONTENTS_FILE_DESCRIPTOR. Метод describeContents() должен вернуть это значение, если в parcelable-классе сериализуется поле типа FileDescriptor.

Класс Parcel не использует метод describeContents() при сериализации и десериализации, а документация умалчивает, зачем для FileDescriptor создана специальная константа и как она используется системой.
В комментариях к ответу на StackOverflow высказывается предположение, что это значение используется для запрета передачи FileDescriptor в интенте при старте компонентов андроида.

Также следует возвращать не 0, если в сериализуемом классе есть поля типа Parcelable. В этом случае нужно делегировать вызов describeContents() в parcelable-поля и использовать побитовое ИЛИ:
В этом канале не осталось вопросов для повторения