Rapide De Fond
Par défaut, lors de certains changements de configuration arriver sur Android (un exemple courant est celui d'un changement d'orientation), Android entièrement redémarrage de l'Activité en cours pour les aider à s'adapter à de tels changements.
Lorsque vous définissez android:configChanges="keyboardHidden|orientation"
dans votre AndroidManifest, en vous disant Android: "Merci de ne pas faire la réinitialisation aux valeurs par défaut lorsque le clavier est sorti, ou le téléphone est tournée; je veux gérer moi-même. Oui, je sais ce que je fais"
Est-ce une bonne chose? Nous allons bientôt voir...
Pas de soucis?
L'un des avantages de commencer avec est qu'il y a:
pas besoin de s'inquiéter à propos de votre activité été tourné
Dans de nombreux cas, les gens croient à tort qu'ils ont une erreur qui est généré par un changement d'orientation ("rotation"), ils peuvent tout simplement le corriger en mettant en android:configChanges="keyboardHidden|orientation"
.
Cependant, android:configChanges="keyboardHidden|orientation" n'est rien de plus qu'un bandaid. En vérité, il existe de nombreuses façons pour un changement de configuration peut être déclenchée. Par exemple, si l'utilisateur sélectionne une nouvelle langue (c'est à dire les paramètres régionaux a changé), votre activité va être redémarré dans la même manière qu'il le fait par un changement d'orientation. Si vous le souhaitez, vous pouvez afficher une liste de tous les différents types de modifications de configuration.
Edit: Plus important encore, même si, comme hackbod points dans les commentaires, votre activité sera également redémarré lorsque votre application est en arrière-plan et Android décide de libérer de la mémoire en le tuant. Lorsque l'utilisateur revient à votre application, Android va tenter de relancer l'activité de la même manière qu'il le fait s'il y avait un autre changement de configuration. Si vous ne peut pas gérer - l'utilisateur ne sera pas heureux...
En d'autres termes, en utilisant des android:configChanges="keyboardHidden|orientation"
n'est pas une solution pour vos "soucis." Le droit chemin est le code de vos activités de sorte qu'ils sont heureux avec un redémarrage Android jette à eux. C'est une bonne pratique qui va vous aider à vous en bas de la route, afin de s'habituer à elle.
Donc quand dois-je l'utiliser?
Comme vous l'avez mentionné il y a un avantage distinct. Écraser la configuration par défaut de changer pour une rotation de la manipulation, il vous permettra d'accélérer les choses. Toutefois, cette vitesse ne viennent avec un prix de convenance.
Pour le dire simplement, si vous l'utilisez pour la mise en page à la fois portrait et paysage, vous êtes en bonne forme par la pratique de la réécriture. Au lieu d'une véritable rechargement de l'activité, le point de vue va simplement déplacer pour remplir l'espace restant.
Toutefois, si pour quelque raison vous utilisez une mise en page différente lorsque l'appareil est en mode paysage, le fait que Android recharge votre Activité est bonne parce qu'elle se charge alors de la bonne mise en page. [Si vous utilisez le remplacer dans une telle Activité, et voulez faire un peu magique re-mise en page lors de l'exécution... et bien, bonne chance - c'est loin d'être simple]
Résumé
Par tous les moyens, si android:configChanges="keyboardHidden|orientation"
est bon pour vous, alors l'utiliser. Mais VEUILLEZ assurez-vous de tester ce qui se passe quand quelque chose change, en raison d'un changement d'orientation n'est pas la seule façon d'une pleine Acitivité redémarrage peut être déclenchée.