Очередь нескольких асинхронных задач в Android 1.6 - PullRequest
2 голосов
/ 27 октября 2011

Я запускаю две асинхронные задачи в одном и том же блоке кода, и части двух задач doInBackGround выполняются одновременно, что вызывает проблемы. Согласно статье, приведенной ниже, в Android 1.5 Async Tasks автоматически ставились в очередь в порядке их выполнения, но эта функция была удалена для Android 1.6. Все ресурсы очереди задач Async, которые я нашел, поддерживают использование threadPool, но это доступно только для Honey Comb. Любые предложения о том, как решить эту проблему?

Артикул: параллельное исполнение AsyncTask

1 Ответ

4 голосов
/ 27 октября 2011

AsyncTask.get () приведет к выполнению блока вызывающего потока и дождется его завершения, вы можете сделать что-то вроде этого:

myAsyncTask1.execute();
myAsyncTask1.get();
myAsyncTask2.execute();

Это гарантирует, что 2-й AsyncTask будетвыполняется после первого завершения, имейте в виду, что AsyncTask.get () блокирует выполнение потока, поэтому, если вы вызовете это в потоке пользовательского интерфейса, вы, вероятно, получите исключение ANR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...