J'ai 2 asyncktask, une création d'une prise de courant et une autre autre qui transmet des objets à l'aide de ces sockets. Mon code est le suivant: Toutefois, le Qu'est-ce qui ne va pas avec ça? P> p> AsynccTask code> appelé
socketConnector code> n'est jamais créé ou exécuté. J'ai essayé de changer la commande, puis de l'émetteur n'est pas créé ou exécuté ... p>
5 Réponses :
Avez-vous essayé d'exécuter émetteur code> dans
du connecteur code>
oiPostexecute () code> ou vice versa? p>
n'est pas possible car les deux les deux asynctaques ont bloqué et peuvent être infinis.
Étant donné que je ne sais pas quel niveau de l'API que vous utilisez, je vous suggérerais de passer par Selon la documentation: P>
Lors de la première introduction, les masques d'asynchronisation ont été exécutés en série sur un seul fil d'arrière-plan. À partir de beignet, cela a été changé en un pool de fils permettant de fonctionner plusieurs tâches en parallèle. À partir d'une nid d'abeille, les tâches sont exécutées sur un seul fil pour éviter les erreurs d'application courantes causées par une exécution parallèle. P>
Si vous voulez vraiment une exécution parallèle, vous pouvez appeler
exécuteonexecuteur (java.util.concurrent.executor, objet []) avec thread_pool_executor. code> p> p>
blockQuote>
Comme Robin Chandander a dit, il est probablement courant en série et vous pouvez utiliser ExecuteOneXecutor ... mais ce n'est pas disponible avant Android 3.0. Si vous souhaitez une compatibilité complète, vous devez vider asyncktask code> et utiliser
exécutable code>. Si vous devez signaler les résultats sur le thread d'interface utilisateur, n'oubliez pas d'utiliser un gestionnaire
code>. P>
Je l'ai détesté lorsque le peigne de miel a changé la multiple exécution d'asyncaptage de la simultanée en séquentielle.
Donc, chaque fois que j'exécute une analyse d'asyncaptage, je fais quelque chose comme ça. Mais la taille du pool de threads est 5, si vous ajoutez la sixième tâche, elle sera ajoutée dans une file d'attente et ne pas être exécuté tant que l'un des 5 threads ait fini. p> p>
Wow tu es génial !! Merci! cela a vraiment travaillé et fait ma journée ^^
J'avais écrit une classe d'exécution d'asynctacterie simultanément.
Vérifiez-le: P>
Il prend tout le travail pour exécuter l'asyncaptage simultanément sur n'importe quelle version du système d'exploitation Android, il est préférable d'utiliser: P>
AsyncTaskExecutor.executeConcurrently(task, params);