Bonjour,
J'essaye de développer en amateur autodidacte une application pour Android 4 (minSdkVersion="15").
Le besoin simplifié est le suivant : appeler une URL pour récupérer un flux XML et afficher des données extraites.
Pendant le téléchargement et le parsing, j'ai une ProgressBar pour faire patienter l'utilisateur.
D'un point de vue restitution, j'ai actuellement une Activity simple dans mon application et je prévois un Widget.
La partie AsyncTask (appel d'URL / parsing / extraction) ne me pose pas de problème.
Actuellement, j'ai découpé mon Activity en 2 Fragments :
- Un Fragment dédié à l'affichage, recréé lors d'une rotation
- Un Fragment persistent (setRetainInstance(true)) qui contient l'AsyncTask et l'état de mes données
Ça fonctionne très bien : le Fragment persistent "survit" à un changement d'orientation de l'écran et préserve l'état de mon AsyncTask et de mes données.
Maintenant, j'aimerais ajouter un widget qui présente les mêmes informations. Sauf que je ne peux pas réutiliser mon Fragment persistent.
Ma question arrive enfin : comment concevoir et découper tout ça ?
Je pense à sortir l'AsyncTask dans un Service (que je peux appeler à partir de mon Fragment persistent et mon AppWidget). Est-ce la bonne piste ?
Mais dans ce cas, comment prévenir mon Activity lors des progrès de mon AsyncTask ? Un listener fait main (mais j'ai peur de fuiter l'Activity) ? Ou via un Broadcast ?
Et est-il possible que le widget se mette à jour si l'Activity rafraîchit ses données ? Via un Broadcast ?
Je n'ai pas réussi à trouver d'exemple couvrant ce type de besoin. Si vous en avez un sous la main ça m'aiderait grandement.
Merci d'avance,
Neraud
Partager