Junior — Middle
Que faut-il prendre en compte lors de l'échange d'un volume important de données entre fragments en utilisant un objet Bundle?
sobes.tech IA
Réponse de l'IA
Lors du transfert de grandes volumes de données entre fragments via un objet Bundle, il faut prendre en compte :
- Limite de taille :
Bundlea une limite de taille (habituellement autour de 1 Mo), dépasser cette limite peut entraîner des erreurs ou des plantages. - Sérialisation des données : Toutes les données doivent être sérialisables (par exemple,
ParcelableouSerializable) pour être transmises correctement. - Performance : Transférer de grandes quantités de données peut ralentir l'application et augmenter le temps de chargement du fragment.
- Alternatives :
- Utiliser des ViewModel partagés avec
LiveDatapour échanger des données entre fragments. - Stocker les données dans une base ou un cache et ne transmettre que les identifiants.
- Utiliser des ViewModel partagés avec
Exemple de transfert de petites données via Bundle :
val bundle = Bundle().apply {
putString("key", "value")
}
fragment.arguments = bundle
Pour de grandes données, il est préférable d'utiliser ViewModel ou d'autres mécanismes.