Pour déterminer la voie à suivre, il faut répondre non seulement à la question clé de CommonsWare: «pourquoi», mais également à la question «vers quoi?». le passez-vous.
La réalité est que la seule chose qui peut passer par des bundles est des données simples - tout le reste est basé sur des interprétations de ce que ces données signifient ou vers lesquelles elles indiquent. Vous ne pouvez pas littéralement passer un objet, mais ce que vous pouvez faire est l'une des trois choses suivantes:
1) Vous pouvez décomposer l'objet en ses données de constitution, et si ce qui se trouve à l'autre extrémité a connaissance du même type d'objet, il peut assembler un clone à partir des données sérialisées. C'est ainsi que la plupart des types courants passent par des bundles.
2) Vous pouvez passer une poignée opaque. Si vous le transmettez dans le même contexte (bien que l'on puisse se demander pourquoi cela vous dérange), ce sera un handle que vous pouvez invoquer ou déréférencer. Mais si vous le transmettez via Binder à un contexte différent, sa valeur littérale sera un nombre arbitraire (en fait, ces nombres arbitraires comptent séquentiellement à partir du démarrage). Vous ne pouvez rien faire d'autre que le suivre, jusqu'à ce que vous le renvoyiez au contexte d'origine, ce qui obligera Binder à le transformer en poignée d'origine, le rendant à nouveau utile.
3) Vous pouvez passer un handle magique, tel qu'un descripteur de fichier ou une référence à certains objets OS / Platform, et si vous définissez les bons indicateurs, Binder créera un clone pointant vers la même ressource pour le destinataire, qui peut en fait être utilisé sur l'autre extrémité. Mais cela ne fonctionne que pour quelques types d'objets.
Très probablement, vous transmettez votre classe juste pour que l'autre extrémité puisse la suivre et vous la restituer plus tard, ou vous la transmettez à un contexte où un clone peut être créé à partir de données constitutives sérialisées ... ou bien vous essayez de faire quelque chose qui ne fonctionnera tout simplement pas et vous devez repenser l'approche dans son ensemble.