Вопрос по multithreading, threadpool, android-asynctask, android – AsyncTask внутри цикла

1

По сути, я хочу запустить несколько потоков, которые выполняются последовательно один за другим. Я используюThread.join() для этого. Но приложение зависает и переходит в состояние ANR. Я хочу знать, что помещение AsyncTask в цикл будет выполнять все задачи последовательно один за другим, или они будут выполняться параллельно ???

for(String s : list)
{
    new asynctask(s).execute();
}
Рассмотрите возможность использования IntentService. Вы можете добавить задачи в очередь. Они будут последовательно выполняться в потоке, не являющемся пользовательским интерфейсом. Vipul Shah

Ваш Ответ

1   ответ
2

Basically I want start a few threads which execute serially one after the another.

После прочтения этого утверждения мне сразу приходит в голову следующее: вам следует подумать об использовании IntentService вместо того, чтобы каждый раз создавать новые задачи.

В основном IntentService это

The IntentService receives a request via the Intent, which includes some information about the task to be completed. This task is then added to a queue,Then all tasks are completed sequentially and asynchronously.

Преимущество использованияIntentService было бы

Это будет гарантировать, что операция будет иметь, по крайней мере, «процесс обслуживания». приоритет, независимо от того, что происходит с деятельностью. Настоятельно рекомендуется, когда вы хотите скачать несколько файлов последовательно.

Здесь вы найдете очень хороший учебник о том, как реализоватьIntentService.

http://mobile.tutsplus.com/tutorials/android/android-fundamentals-intentservice-basics/

+1 Хороший ответ.
@Vipul: спасибо большое. Pankaj Singhal

Похожие вопросы