2013-09-23 2 views
-3

У меня есть проблема, которую я не могу понять вообще !. У меня есть Asynctask, который подключается к веб-службе и загружает некоторые данные.Одновременное выполнение нескольких Asyntasks

Но когда я это делаю, мой другой Asynctasks ждет этого Asynctask to finish his work even Asynctasks in other Деятельность` !!. Но я не понимаю этого.

Как я могу избежать этого ?. Я думал, что Asynctasks может работать одновременно, но теперь это не так! В чем проблема? Кажется, REST и загрузка потоков данных блокирует все приложение.

+0

Вы будете иметь, чтобы показать нам код. Вполне возможно одновременное выполнение двух или более асинхронных задач. –

+0

http://developer.android.com/reference/android/os/AsyncTask.html - просто прочитайте документацию :) – 323go

ответ

5

Если вы работаете на Android 3.0 или новее, и используете стандартную реализацию AsyncTask (т. Е. Тот из фреймворка), она будет выполнять только одну задачу за раз. Тем не менее, можно получить параллельное выполнение. Смотри ниже.

От documentation of AsyncTask

Порядок исполнения

Когда впервые, AsyncTasks были выполнены поочередно на одном фоновом потоке. Начиная с DONUT, это было изменено на пул потоков, позволяющий нескольким задачам работать параллельно. Начиная с HONEYCOMB, задачи выполняются в одном потоке, чтобы избежать общих ошибок приложения, вызванных параллельным выполнением.

Если вы действительно хотите выполнить параллельное выполнение, вы можете вызвать executeOnExecutor(java.util.concurrent.Executor, Object[]) с помощью THREAD_POOL_EXECUTOR.

Смежные вопросы