web-dev-qa-db-fra.com

Évitez de recharger votre activité avec Asynctask sur le changement d'orientation dans Android

Comment puis-je éviter de recharger l'activité avec la classe asynctask dans l'activité lorsque l'utilisateur change d'orientation, dans Android? Quelqu'un peut-il donner un exemple?

16
mohan

Chirag a déjà correctement indiqué la solution.

Je veux juste ajouter que, le redémarrage de l'activité n'a rien à voir avec la AsyncTask qu'il contient. Par défaut, en cas de modification de configuration, l'activité est redémarrée SAUF SI la modification de configuration est explicitement gérée par l'activité. Ceci est fait en faisant une entrée dans le fichier manifeste. 

Suivez ce guide de développeur de lien: Android: configChanges

NOTE: Vérifiez le code sur un périphérique autre que l'émulateur. Parce que j'avais rencontré un problème similaire plus tôt. Le même code n'a pas fonctionné sur l'émulateur mais il a fonctionné parfaitement sur le périphérique. Ajoutez donc l'entrée pour Android:configChanges dans le manifeste et vérifiez l'application sur un périphérique Android au lieu de l'émulateur.

Et je seconde @hackbod. Ne le faites que si nécessaire!  

2
Udayan

Veuillez désactiver les modifications de configuration en dernier recours. Votre application doit fonctionne correctement lorsque cela se produit. Si vous désactivez le changement de configuration d'orientation car il est cassé, votre application continuera à fonctionner de manière plus subtile. Permettre à l'activité de redémarrer en raison d'un changement de configuration d'orientation est un très bon moyen de tester facilement ces chemins de code importants de votre application, qui sont par ailleurs beaucoup moins souvent exercés, mais qui entraînent néanmoins des échecs entre les mains de vos utilisateurs.

Pour transférer des objets actifs entre les instances Activity, utilisez la nouvelle bibliothèque statique fragment qui vous permet de créer un fragment qui est conservé pour vous entre les instances.

75
hackbod

Comment conserver 2 dialogues 'Alert' ouverts l'un de l'autre lorsque l'orientation change? Croyez-moi, il n'est pas simple de redémarrer l'activité de 3 fragments avec 2 dialogues ouverts. Les programmeurs n'ont pas le temps de faire de la programmation inutile. Il est plus facile d'arrêter le changement d'orientation pour une partie de l'application ou de le bloquer pour toujours. 

0
TomeeNS