Tout d'abord, découvrez mon post sur la rétention de Fragments. Cela pourrait aider. :)
Maintenant, pour répondre à vos questions...
Le fragment de conserver sa vue de l'état, ou ce que ce sera recréé sur la modification de la configuration - qu'est-ce exactement est "engagé"?
Oui, l' Fragment
s'etat seront conservés à travers le changement de configuration. Plus précisément, les "non" signifie que le fragment de ne pas être détruits sur les modifications de la configuration. Qui est, l' Fragment
sera conservé même si le changement de configuration des causes sous-jacentes Activity
à être détruit.
Sera le fragment être détruites lorsque l'utilisateur quitte l'activité?
Tout comme Activity
s, Fragment
s peut être détruite par le système lorsque les ressources de mémoire sont faibles. Si vous avez vos fragments conservent leur état de l'instance à travers les modifications de la configuration n'aura aucun effet sur si oui ou non le système va détruire l' Fragment
s une fois que vous quittez l' Activity
. Si vous laissez l' Activity
(c'est à dire en appuyant sur le bouton home), l' Fragment
s peut ou ne peut pas être détruit. Si vous laissez l' Activity
en appuyant sur le bouton back (donc, en appelant finish()
et efficace de détruire l' Activity
), tous les de la Activity
s attaché Fragment
s seront également détruites.
Pourquoi ne pas travailler avec des fragments sur la pile de retour?
Il y a sans doute de multiples raisons pour lesquelles il n'est pas pris en charge, mais la raison la plus évidente pour moi, c'est que l' Activity
contient une référence à l' FragmentManager
, et l' FragmentManager
gère la backstack. Qui est, peu importe si vous choisissez de conserver votre Fragment
s ou non, Activity
(et donc l' FragmentManager
s'backstack) seront détruites à un changement de configuration. Une autre raison pourquoi il ne pourrait pas travailler est parce que les choses pourraient être si difficile à la fois conservé des fragments et de la non-rétention de fragments ont été autorisés à exister sur le même backstack.
Qui sont les cas d'utilisation où il est raisonnable d'utiliser cette méthode?
Rétention de fragments peut être très utile pour propager des informations de l'état - en particulier la gestion des threads, - à travers les instances d'activité. Par exemple, un fragment peut servir d'hôte pour une instance de Thread
ou AsyncTask
, la gestion de son fonctionnement. Voir mon billet de blog sur ce sujet pour plus d'informations.
En général, je voudrais traiter de la même manière à l'aide d' onConfigurationChanged
avec un Activity
... ne l'utilisez pas comme un bandaid juste parce que vous êtes trop paresseux pour mettre en oeuvre et gérer un changement d'orientation correctement. Utiliser uniquement quand vous en avez besoin pour.