Respostas:
Há uma constante definida em Parcelable
chamada CONTENTS_FILE_DESCRIPTOR
que deve ser usada describeContents()
para criar o valor de retorno do bitmask.
A descrição para CONTENTS_FILE_DESCRIPTOR
na API ref é:
Máscaras de bits para uso com describeContents (): cada bit representa um tipo de objeto considerado como tendo significado especial potencial quando empacotado.
O que realmente significa: Se você precisa colocar FileDescriptor
objeto em Parcelable você deve / tem de especificar CONTENTS_FILE_DESCRIPTOR
como valor de retorno de describeContents (), ou seja, por " objeto especial " (na describeContents()
descrição 's) eles realmente querem dizer: FileDescriptor
.
Toda a funcionalidade Parcelable parece inacabada (leia-se: tem um design ruim). Há uma outra coisa estranha nos documentos:
As classes que implementam a interface Parcelable também devem ter um campo estático chamado CREATOR, que é um objeto que implementa a interface Parcelable.Creator
Implementando herança múltipla por regras definidas em formato legível por humanos? :-)
Parece que o programador C ++ projetou Parceable
e em algum ponto ele percebeu: Oh, droga, não há herança múltipla em Java ... :-)
describeContents()
deveria retornar 0 sempre que "não tivesse nada de especial sobre isso" . O que realmente não explica nada. Sua explicação é muito mais clara!
Existem apenas dois valores possíveis, 0 ou CONTENTS_FILE_DESCRIPTOR
se você estiver serializando o POLO, este valor deve ser sempre 0, o CONTENTS_FILE_DESCRIPTOR é reservado para ParcelFileDescriptor , que poderia serializar um Descritor de Arquivo (FD) no sistema * unix.