2010-09-30 8 views
3

Je me suis accroché sur la façon de gérer les données pour une application que je suis en train de concevoir. Je veux tirer une liste d'articles sur le net. Les données sont régulièrement mises à jour, et je pense qu'il serait bon de stocker toutes les données sur l'appareil afin que l'application puisse charger rapidement et actualiser les données dans un thread d'arrière-plan plutôt que d'attendre le réseau à chaque démarrage.Meilleure façon d'obtenir des données en ligne et de les stocker dans Android

Je pense que je devrais rendre les données disponibles dans un XML et avoir une analyse de thread et enregistrer dans une base de données SQLite, mais je ne suis pas sûr que ce soit la «meilleure pratique». Y a-t-il d'autres façons de gérer cela?

+0

Utilisez JSOUP! ..... –

Répondre

2

Le moyen le plus propre (ou du moins, je pense que c'est le moyen le plus propre) est d'implémenter une classe personnalisée ContentProvider qui s'interface avec votre serveur. Vous pouvez interroger le fournisseur de contention et s'il n'a pas les données dans un cache local (par exemple une base SQLite comme vous l'avez dit), il les télécharge depuis votre serveur et les ajoute aux données locales. Pourquoi un fournisseur de contenu? parce que vous pouvez facilement accéder à vos données à travers les applications et vous avez un moyen agréable et propre pour obtenir vos données lors de l'utilisation des intentions. En outre, je préfère personnellement ne pas télécharger de données lorsque l'application n'est pas en cours d'exécution, car cela va coûter la vie de la batterie alors que l'utilisateur ne demande pas activement les données.

1

Semble raisonnable.

Si le téléchargement des nouvelles données prend plus de quelques secondes, vous pouvez utiliser un Service. Cela vous permettra de continuer la mise à jour même lorsque l'utilisateur a quitté votre application.

De même, pensez à la manière dont vous notifierez à l'utilisateur que quelque chose se passe. L'affichage d'un indicateur de progression est toujours une bonne idée. Sinon, les utilisateurs pourraient penser que les données ne sont pas à jour, car l'application est cassée.

+0

Ce n'est pas une mauvaise façon de procéder, j'avais prévu d'avoir une sorte de "rafraîchissement ..." ligne en haut de l'écran pendant la mise à jour. Mais je suis en train d'essayer de mettre au point les subtilités de fournir les données (un fichier XML ou JSON?) Et de le stocker sur l'appareil. – ASTX813

+0

Well XML ou JSON est surtout une question de préférence personnelle et celle qui est la plus facile à implémenter sur votre serveur. Ils ont tous les deux un bon support API sur Android. Pour stocker les données sur l'appareil, la réponse de Thomas sur l'utilisation d'un ContentProvider est probablement la meilleure façon de procéder si vous voulez un design propre. – Julien

Questions connexes