studio parcelize example data android parcelable parcel

parcelize - parcelable android studio



Parcelable donde/cuándo se describe el contenido() utilizado? (2)

Hay una constante definida en Parcelable llamada CONTENTS_FILE_DESCRIPTOR que se debe usar en describeContents() para crear el valor de retorno de la máscara de bits.

La descripción de CONTENTS_FILE_DESCRIPTOR en la API ref es:

Máscaras de bits para su uso con describeContents (): cada bit representa un tipo de objeto que se considera que tiene un significado especial potencial cuando se lo ordena.

Lo que realmente significa: si necesita poner el objeto FileDescriptor en Parcelable, debe / debe especificar CONTENTS_FILE_DESCRIPTOR como valor de retorno de describeContents (), es decir, por " objeto especial " (en la describeContents() de describeContents() ) realmente quieren decir: FileDescriptor .

Toda esta funcionalidad Parcelable parece inacabada (léase: tiene un diseño incorrecto). Hay otra cosa extraña en los documentos:

Las clases que implementan la interfaz Parcelable también deben tener un campo estático llamado CREATOR, que es un objeto que implementa la interfaz Parcelable.Creator

¿Implementando herencia múltiple por reglas definidas en forma legible por humanos? :-)

Parece que el programador de C ++ diseñó Parceable y en algún momento se dio cuenta: Oh, maldición, no hay herencia múltiple en Java ... :-)

¿Alguien sabe dónde / cuándo se llama este método de Parcelable ?

@Override public int describeContents() { return 0; }

Tiene que ser anulado. ¿Pero debería considerar hacer algo útil con eso?


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á invertido para ParcelFileDescriptor , que podría serializar un Descriptor de Archivo (FD) en el sistema * unix.