SQLite
 sql >> Base de données >  >> RDS >> SQLite

Méthode / commande recommandée pour lire les données d'un service Web, analyser ces données et les insérer dans une base de données SQLite

J'ai décidé de venir vers vous parce que vous êtes les experts

d'abord i am not expert et aussi i am not knowledgeable vous pouvez trouver plus d'experts que moi, mais c'est mon opinion hope to give you some help .

oubliez d'abord d'utiliser AsyncTask à télécharger car il doit être utilisé pour des travaux d'arrière-plan courts, pas comme le vôtre. Je pense que la quantité de fichiers que vous souhaitez télécharger est assez importante. (je pense que oui)

vérifier downloadmanager de google pour voir comment ça marche ça peut t'aider.

http://developer.android.com/reference/android/app/DownloadManager.html

http://blog.vogella.com/2011/06/14/android-downloadmanager-example/

si vous souhaitez utiliser le service utiliser unbound service parce que vous ne voulez pas que le service soit détruit par Android ou l'utilisateur lorsque l'utilisateur ferme les applications, n'est-ce pas ? je pense que vous voulez obtenir vos données de toute façon.

pour être efficace, je recommande ces étapes :

un. Lire un service reposant pour récupérer les données clients

b. lorsque vous obtenez des données client, faites :

  • créer un autre service ou fil pour lire un service reposant pour récupérer les données des articles

  • Analysez la réponse aux objets Json sur votre ancien service ou thread

maintenant vous avez 2 services ou threads qui s'exécutent simultanément, alors suivez les étapes évidentes insert parse et ainsi, sur chaque service ou thread.

pourquoi ne pas combiner a et d? parce que je pense que l'utilisateur n'aime pas attendre longtemps derrière la barre de progression du téléchargement.

afin d'insérer vos données dans la base de données, utilisez transaction et je vous recommande d'utiliser :

http://greendao-orm.com/

c'est plus efficace ORM que d'autres pour la base de données et vous êtes libre de l'implémentation de la base de données.

Si l'activité qui a démarré le service est explicitement annulée ou masquée par une autre activité, le service doit disposer d'un moyen d'informer l'utilisateur que le processus est terminé. Comment pourrais-je implémenter cela ?

utiliser la notification :

http://developer.android.com/training/notify-user/build-notification.html

http://www.tutorialspoint.com/android/android_notifications.htm

http://www.vogella.com/tutorials/AndroidNotifications/article.html

Pendant que tout ce long traitement se déroule en arrière-plan, je vais devoir afficher une sorte d'indicateur (un ProgressDialog) C'est la raison pour laquelle j'ai opté pour l'utilisation d'un service lié`

comment puis-je mettre à jour l'interface utilisateur à partir d'un service indépendant ?`

Utiliser un LocalBroadCastManager , ou en général BroadCastReciever

Interface utilisateur d'activité de mise à jour Android à partir du service

Dans J2ME, j'ai fait quelque chose de similaire, et quand j'ai mis quelque chose comme les 6 étapes que j'ai mentionnées ci-dessus, toutes sont exécutées séquentiellement, c'est-à-dire l'une après l'autre. Est-ce la même chose sur Android ?

cela dépend de vos étapes, si vous suivez mon idée, vous exécutez concurrently et si vous exécutez votre idée, vous exécuterez sequentially .

Bonne chance.