Question

En fait, je suis XML à partir du aller chercher web, l'analyse et l'afficher sur l'écran. Le problème que je reçois est que les essais d'activité pour charger les données du web à chaque fois que l'activité est appelée (En fait, mon application mobile nécessite des déplacements fréquents sur le serveur) donc je suis à la recherche de la ci-dessous solution:.

On Re-launch of an activity, the data from web should not be loaded again. 
creating a class that i can use to transparently make application faster by
selectively caching items in memory.  And thus, making users very happy and 
This class can even apply individual refresh times to each cached item.

Alors, je pense que je dois stocker les données dans le cache ou quelque chose comme ça.

Y at-il moyen / technique pour mettre en œuvre une telle chose? de sorte qu'il n'a pas besoin de charger chaque fois sur Re-lancement d'une activité.

Était-ce utile?

La solution

Je ne sais pas ce que la performance serait avec cette suggestion, mais de loin le plus facile si vous voulez juste pour éviter l'extraction XML des fichiers à chaque fois que vos relances d'activité, est de les enregistrer sur de stockage interne. Lorsque votre activité (re) lance, vous allez commencer par vérifier si les fichiers existent localement avant de les récupérer à partir du Web.

Vous auriez bien sûr besoin venir sorte de logique de dire si un fichier XML est « obsolète » (vous pouvez avoir une table de base de données simple avec les noms de fichiers et les dates de dernière tirées par les cheveux), et vous aimerez sûrement aussi avoir une sorte de logique de nettoyage pour supprimer des fichiers lorsque vous ne avez plus besoin afin qu'ils ne remplissent pas l'espace nécessaire.

Autres conseils

Vous pouvez essayer d'utiliser un pour le chargement des données dans le arrière-plan à des intervalles donnés.

Eh bien ce que je l'aurais fait est de faire une table, laisse appel dire qu'il « Table_Web_XML » et champs appropriés pour stocker des données Web spécifiques.

Lors du démarrage de l'activité, je dois d'abord vérifier s'il y a des données dans la base de données. Si la table est vide (ce qui signifie l'activité est en cours de chargement pour la première fois), je le charge à partir du Web et d'afficher sur l'écran et enregistrer dans la base de données.

D'autre part, s'il y a des données dans le tableau, alors je charger sur l'écran, et commencerais un service en arrière-plan qui mettrait à jour ma table de base de données s'il y a des changements dans sur le Web. Ce que cela ferait est pour le point de vue de la réponse du système, les données sera toujours chargée rapidement, lorsque l'activité est ouverte à plusieurs reprises, et le service d'arrière-plan assurera nouveau et dernier contenu sur les demandes suivantes :). Espérons que cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top