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.