en parallèle un AsyncTask
J'ai un SplashActivity dans mon application qui faire des trucs à l'aide de AsyncTask lorsque je démarre mon application.
J'ai aussi créé un autre AsyncTask qui télécharge des données à partir du serveur. Maintenant, après je ferme mon application de l'AsyncTask est encore de télécharger les données.
Mais quand j'ai recommencer ma demande mon SplashActivity de l'AsyncTask n'exécute pas ses arrière-plan (doInBackground fonction) jusqu'à ce que mon downloader AsyncTask est fini, et ma demande est pendu.
Donc ma question est-ce que nous ne pouvons pas courir deux AsyncTask parallèle? Les deux AsyncTask sont différentes et font de leur propre substance.
Est-il un moyen de le faire.
- Merci de poster le code (Tâches et de l'appel de l'Activité)
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin d'utiliser un
thread pool Executor
pour exécuterAsyncTask
. L'implémentation par défaut utilise une série d'exécuteur en cours d'exécution sur un seul threadAfin de créer un ThreadPoolExecutor et ensuite utiliser
AsyncTask est executeOnExecutor au lieu de simplement exécuter la méthode
Il y a eu un changement dans l'AsyncTask de Nid d'abeilles de presse. Les anciennes versions avaient un pool de Threads de 10 threads, de sorte que vous pouvez exécuter 10 tâches en parallèle. Mais pour en Nid d'abeille et, par défaut, est une série d'exécuteur testamentaire, qui exécute les tâches une par une. Mais vous pouvez passer à un
ThreadPoolExecutor
pour l'exécution:new Void[]{}
; omission, il suffit.Une autre option est d'utiliser AsyncTaskCompat de soutien v. 4 bibliothèque.