¿Alguien sabe dónde / cuándo se llama este método de Parcelable ?
@Override
public int describeContents() {
return 0;
}
Tiene que anularse. ¿Pero debería considerar hacer algo útil con él?
¿Alguien sabe dónde / cuándo se llama este método de Parcelable ?
@Override
public int describeContents() {
return 0;
}
Tiene que anularse. ¿Pero debería considerar hacer algo útil con él?
Respuestas:
Hay una constante definida en la
Parcelable
llamadaCONTENTS_FILE_DESCRIPTOR
que está destinada a ser utilizadadescribeContents()
para crear un valor de retorno de máscara de bits.La descripción de
CONTENTS_FILE_DESCRIPTOR
la API ref es:Que en realidad significa: Si usted necesita poner
FileDescriptor
objeto en parcelable debe / debe especificarCONTENTS_FILE_DESCRIPTOR
como valor de retorno de describeContents (), es decir, por " objeto especial " (en ladescribeContents()
descripción 's) que realmente quieren decir:FileDescriptor
.Toda esta funcionalidad Parcelable parece inacabada (léase: tiene un mal diseño). Hay otra cosa extraña en los documentos:
¿Implementando herencia múltiple mediante reglas definidas en forma legible por humanos? :-)
Parece que el programador de C ++ lo diseñó
Parceable
y en algún momento se dio cuenta: Oh, maldita sea, no hay herencia múltiple en Java ... :-)fuente
describeContents()
debería devolver 0 siempre que "no tenga nada especial" . Lo que realmente no explica nada. ¡Tu explicación es mucho más clara!Solo hay dos valores posibles, 0 o CONTENTS_FILE_DESCRIPTOR
si está serializando POLO, este valor siempre debe ser 0, el CONTENTS_FILE_DESCRIPTOR está reservado para ParcelFileDescriptor , que podría serializar un Descriptor de archivo (FD) en un sistema * unix.
fuente