2012-11-20 5 views
-1

Je travaille sur des tâches Android Async. J'avais essayé d'implémenter plusieurs tâches asynchrones dans la classe principale. Cependant, peu importe la tâche que j'appelle, seule la première implémentation est chargée. Pourquoi cela arrive-t-il et comment puis-je le résoudre? Toute aide serait appréciée.Implémentation de plusieurs tâches asynchrones

+3

Veuillez poster votre code de cours principal. – Radu

Répondre

-1

J'ai eu des problèmes similaires avec AsyncTask, et évidemment sans votre code je ne pourrais pas vous dire quel est votre problème spécifique. Cependant, la plupart des problèmes que j'ai vu semblable à la vôtre sont dus au couple des points suivants:

« AsyncTasks devrait idéalement être utilisé pour les opérations courtes (quelques secondes au plus.) Si vous devez garder threads s'exécutant pendant de longues périodes de temps, il est fortement recommandé d'utiliser les diverses API fournies par le pacava java.util.concurrent tels que Executor, ThreadPoolExecutor et FutureTask. "

Aussi, si vous vous attendez les AsyncTasks à courir en même temps, vous êtes probablement faire mal:

Lorsque la première, AsyncTasks ont été exécutées en série sur un seul thread d'arrière-plan . En commençant par DONUT, cela a été changé en un pool de threads permettant à plusieurs tâches de fonctionner en parallèle. À partir de HONEYCOMB, les tâches sont exécutées sur un seul thread afin d'éviter les erreurs d'application courantes provoquées par l'exécution parallèle.

Si vous voulez vraiment l'exécution en parallèle, vous pouvez appeler executeOnExecutor (java.util.concurrent.Executor, Object []) avec THREAD_POOL_EXECUTOR.

+0

problème résoudre. C'est un problème d'éclipse, il ne peut pas exécuter le programme mis à jour. Cela fonctionne bien après le redémarrage. –

Questions connexes