Je travaille sur une application Android où je dois télécharger des images et lancer un diaporama. Pour télécharger les images, j'utilise une AsynTask, et dès que les images sont téléchargées, j'utilise un handler pour démarrer le diaporama. Mais lors d'un changement d'orientation, je ne suis pas en mesure de contrôler le handler. Parce que l'objet handler est défini avec la classe AsyncTask.
Voici le scénario approximatif de ce que j'ai fait :
La classe A prolonge l'activité
Classe B async = nouvelle Classe B(this) ;
async.execute() ;
La classe B étend AsyncTask et implémente OnPageChangeListener, OnTouchListener.
onPreExecute() -------Rien dans cette méthode
doInBackground -------Je télécharge les images ici
onPostExecute ---------Handler démarre ici et s'exécute toutes les 5 secondes pour la mise en œuvre du diaporama.
Maintenant, le problème :
Lors du changement d'orientation, j'ai fait en sorte que l'AsyncTask ne soit appelée qu'une seule fois, sinon elle télécharge à nouveau les images, c'est pourquoi le handler ne s'exécute pas lors du changement d'orientation.
Le premier objet handler qui a été démarré, continue à fonctionner mais les changements ne se reflètent pas à l'écran.
Je pensais mettre en œuvre une manière dont les images sont téléchargées en utilisant l'AsyncTask et une fois que le téléchargement est terminé, ClassA devrait gagner le focus et le handler devrait être mis en œuvre dans ClassA (seulement lorsque les images sont téléchargées).