0

J'ai un ListView avec un ArrayAdapter personnalisé, qui affiche les commandes d'une ArrayList. Ces commandes sont supposées être synchronisées avec mon serveur. Là j'ai une API, que je demande pour de nouvelles commandes, et s'il y en a, je récupère un XML de la commande. Quelle est la meilleure approche pour mettre à jour dynamiquement le listView? Je ne veux pas utiliser SQLite pour stocker les commandes, car seules les dix dernières sont censées être affichées. Avec un ContentProvider je ne peux pas stocker mon objet Order personnalisé. Et si je place la classe ArrayList dans une classe singleton et l'utilise dans le service ainsi que dans la classe Activity pour ArrayAdapter, ListView n'est pas mis à jour dynamiquement (probablement parce que arrayAdapter fait une copie de l'arraylist?). Merci beaucoup.Partage de données entre services et activités

Filip

Répondre

1

Je ne suis pas sûr de ce que vous voulez dire en ce qui concerne le ArrayAdapter pas mis à jour, mais je peux vous donner une solution que nous avons utilisé dans mon entreprise.

J'ai un DataMaanger qui est un pont entre les activités et le réseau ou SQLite. dataMaanger conserve ses données en mémoire afin qu'elles ne se trouvent pas dans la base de données ou sur le disque. l'inconvénient est que si votre application est tuée par manque de mémoire et se reconstruit, le dataManager sera vide, ce qui vous laisse deux options, soit à la mort de chaque Activitie soit à la mort de votre tâche principale, ou si vous ne dépendez d'aucune donnée précédente, vous n'avez plus besoin que d'effectuer une nouvelle recherche et de mettre à jour le gestionnaire de données. J'utilise des émissions pour notifier mes activités.

Pour accéder à DataManager, je n'utilise pas de sigletone. J'utilise l'objet Application, vous pouvez l'étendre et dans le Manifest.xml donner son nom dans la balise, alors il sera utilisé à la place de l'objet regualr Application.

Vous pouvez y accéder plus tard en utilisant la méthode getApplication() dans la classe Activity.

Questions connexes