Alguém sabe onde / quando esse método de Parcelable é chamado?
@Override
public int describeContents() {
return 0;
}
Tem que ser anulado. Mas devo pensar em fazer algo útil com ele?
Alguém sabe onde / quando esse método de Parcelable é chamado?
@Override
public int describeContents() {
return 0;
}
Tem que ser anulado. Mas devo pensar em fazer algo útil com ele?
Respostas:
Há uma constante definida em
Parcelable
chamadaCONTENTS_FILE_DESCRIPTOR
que deve ser usadadescribeContents()
para criar o valor de retorno do bitmask.A descrição para
CONTENTS_FILE_DESCRIPTOR
na API ref é:O que realmente significa: Se você precisa colocar
FileDescriptor
objeto em Parcelable você deve / tem de especificarCONTENTS_FILE_DESCRIPTOR
como valor de retorno de describeContents (), ou seja, por " objeto especial " (nadescribeContents()
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:
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 ... :-)fonte
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.
fonte