J'écris une application Android qui se connectera à un service Web de repos / JSON. Les utilisateurs vont récupérer des informations, télécharger des commentaires, télécharger et télécharger des images, etc. p>
Je sais que je ne devrais pas garder toute cette communication réseau dans le fil d'activité / interface utilisateur, car cela provoquera des ANRS. Ce que je suis confus est de savoir si je devrais utiliser un service d'asyncaptage ou un service avec un enfilage "manuel" pour y accomplir; p>
Avec un service, j'aurais simplement une méthode publique pour chaque méthode dans l'API du WebService. Je voudrais ensuite mettre en œuvre le filetage dans chacune de ces méthodes. P>
Si j'avais utilisé un groupe d'asyncaptage, je créerais une classe d'assistance qui définissait des masques d'asyncaptage pour chaque méthode de l'API du WebService. P>
Quelle méthode est préférée? L'interaction avec le service Web ne se produira que lorsque l'utilisateur est dans l'activité. Une fois qu'ils passent à une autre application ou quittent le programme, il n'est pas nécessaire de la communication avec le Webservice. P>
3 Réponses :
Je vous recommande d'aller pour la solution d'asyncaptage. C'est un moyen simple et simple de faire fonctionner des demandes ou toute autre tâche de base du fil-fil de l'UI. P>
Il est également facile de mettre en œuvre par exemple. ONPROGRESSUPDATEDATE Si vous devez afficher une barre de progression de quelque sorte en exécutant vos demandes. P>
Merci pour la recommandation. Cependant, après avoir regardé cette vidéo Google io ( Google .com / Events / IO / 2010 / Sessions / ... ), j'ai décidé d'aller chercher une approche basée sur les services. Je peux toujours utiliser des masques d'asyncaptage pour des instances dans lesquelles l'utilisateur nécessitera des commentaires immédiats auprès du service (publication d'un commentaire par exemple). Pour des tâches de fond simples, il semble que l'asyncque est la voie à suivre.
Je recommande intitifservice code>, il n'est pas beaucoup plus complexe à mettre en œuvre et n'est certainement plus robuste car il n'est pas lié de manière aussi étroitement sur l'activitéLifecycle (en particulier à
OnconfigurationChange () Code >) p>
Cette bibliothèque fournit une enveloppe ASYNC à Apache httpClient disponible dans Android. P>