describeContents() обычно возвращают значение 0. Документация говорит, что этот метод описывает виды «специальных объектов», которые содержатся в Parcelable. В текущей версии Android API существует только один вид таких объектов –
FileDescriptor.Для него имеется константа CONTENTS_FILE_DESCRIPTOR. Метод describeContents() должен вернуть это значение, если в parcelable-классе сериализуется поле типа
FileDescriptor.Класс
Parcel не использует метод describeContents() при сериализации и десериализации, а документация умалчивает, зачем для FileDescriptor создана специальная константа и как она используется системой. В комментариях к ответу на StackOverflow высказывается предположение, что это значение используется для запрета передачи
FileDescriptor в интенте при старте компонентов андроида.Также следует возвращать не
0, если в сериализуемом классе есть поля типа Parcelable. В этом случае нужно делегировать вызов describeContents() в parcelable-поля и использовать побитовое ИЛИ: