Comment utiliser ExecutorService avec Android AsyncTask?
J'ai besoin d'exécuter un certain nombre de AsyncTask
s, puis rassembler l'ensemble de leurs résultats, de les regrouper et ensuite de retourner le résultat final de mon utilisateur.
Je cherche un moyen de gérer plusieurs AsyncTask
s en Android. Je pense à l'aide d'un ExecutorService
de la Java de la Simultanéité paquet, mais je suis bloqué car ExecutorService
prend soit Runnables ou Callables SEULEMENT. Pour établir ma condition, je peux utiliser les
ExecutorService.invokeAll((Collection<? extends Callable<T>> tasks)
La invokeAll()
méthode retourne une liste de List<Future><V>>
uniquement lorsque toutes les tâches sont terminées et je peux obtenir mes résultats pour chaque tâche de son correspondant Future
.
Tout va bien avec ExecutorService
attendre pour le fait qu'il n'accepte pas AsyncTask
.
Est-il un autre moyen d'utiliser AsyncTask
et ExecutorService
ou si vous pouvez s'il vous plaît recommander une approche différente.
source d'informationauteur AKh
Vous devez vous connecter pour publier un commentaire.
Créer un
AsyncTask
et de commencer votre threads dedoInBackground()
. Quand elles sont faites, collecter, consolider, etc. les données et le retourner. Ensuite, vous pouvez l'utiliser dansonPostExecute
de mettre à jour l'INTERFACE utilisateur. Départ trop grand nombre de thread consomment de la mémoire, de sorte que vous devriez considérer si ils ont vraiment besoin pour s'exécuter en parallèle.