Est-ce que quelqu'un sait où/quand cette méthode de Parcelable est appelée?
@Override
public int describeContents() {
return 0;
}
Elle doit être annulée. Mais devrais-je envisager d'en faire quelque chose d'utile?
Il existe une constante définie dans Parcelable
appelée CONTENTS_FILE_DESCRIPTOR
Qui est destinée à être utilisée dans describeContents()
pour créer la valeur de retour du masque de bits.
La description de CONTENTS_FILE_DESCRIPTOR
Dans ref API est:
Masques de bits à utiliser avec describeContents (): chaque bit représente un type d'objet considéré comme ayant une signification particulière potentielle lorsqu'il est organisé.
Ce qui signifie vraiment: si vous devez mettre un objet FileDescriptor
dans Parcelable, vous devez/devez spécifier CONTENTS_FILE_DESCRIPTOR
Comme valeur de retour de describeContents (), c'est-à-dire par " spécial object "(dans la description de describeContents()
) cela signifie vraiment: FileDescriptor
.
Cette fonctionnalité parcelable semble inachevée (lire: a une mauvaise conception). Il y a une autre chose étrange dans les documents:
Les classes implémentant l'interface Parcelable doivent également avoir un champ statique appelé CREATOR, qui est un objet implémentant l'interface Parcelable.Creator
Mettre en œuvre l'héritage multiple par des règles définies sous une forme lisible par l'homme? :-)
Il semble que le programmeur C++ ait conçu Parceable
et à un moment donné, il a réalisé: Oh, putain, il n'y a pas d'héritage multiple en Java ... :-)
Il n'y a que deux valeurs possibles, 0 ou CONTENTS_FILE_DESCRIPTOR
si vous sérialisez POLO, cette valeur doit toujours être 0, CONTENTS_FILE_DESCRIPTOR est réservé à ParcelFileDescriptor , ce qui pourrait sérialiser un descripteur de fichier (FD) dans le système * unix.