Android deux AsyncTasks en série ou en parallèle de l'exécution? - La deuxième est de congélation, mais le résultat est ok
J'ai couru deux AsyncTask tâches dans mon application Android qui sont dans la même classe, mais avec des paramètres différents. Par exemple:
new myAsynckTask(a,b,c).execute();
new myAssyncTask(a,d,e).execute();
Ils exécutent en parallèle ou en série? Je pose cette question car lors de la première commence, indique l'avancement de l'exécution et lorsque je finis de voir le second qui a besoin de plus de temps pour terminer, mais je ne peux pas voir le progrès(je suis capable de voir le rectangle mais la barre de progression ne s'affiche pas 20%..et ainsi de suite). C'est comme de congélation, mais le résultat est ok.
Ce que je veux faire est de les exécuter dans l'ordre de série et être en mesure de voir les progrès dans les deux d'entre eux.
Je lance l'application sur Android Jelly Bean 4.2.2 API de Niveau 17
OriginalL'auteur George Melidis | 2013-09-06
Vous devez vous connecter pour publier un commentaire.
Si votre
android:targetSdkVersion
est de 13 ou plus, et vous êtes en cours d'exécution sur un Android 3.2 ou supérieure de l'appareil, ils seront exécutés en série.Si vous êtes en cours d'exécution sur Android 1.5, elles seront exécutées en série.
Sinon, ils seront exécutées en parallèle.
Vous pouvez opter en parallèle de l'exécution par le remplacement de
execute()
avecexecuteOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)
.Pour en savoir plus, voir "Ordre d'Exécution" de la section de le
AsyncTask
Javadoc.OriginalL'auteur CommonsWare
La réponse à votre question est: ça dépend totalement de la version d'Android que vous utilisez, et est un énorme problème, j'ai été confronté à de nombreuses applications.
Vous devriez vérifier ce lien si vous voulez voir comment les exécuter correctement
OriginalL'auteur Cruceo
Mise à JOUR: copié à partir de Les Développeurs Android et initié par Yazazzello
Vous devriez l'utiliser pour l'exécution en parallèle:
merci pour l'info
OriginalL'auteur Nino Handler