У вас есть две AsyncTasks в одном действии?

Я уже разработал Activity, который будет анализировать данные JSON и отображать результаты в ListView. Для этой цели я использую AsyncTask.

Теперь я хочу, чтобы, когда я нажимаю элемент в ListView, файл должен начать загрузку. Могу ли я написать еще одну AsyncTask в той же самой деятельности, чтобы эта AsyncTask выполнила загрузку для меня? Есть ли проблема с наличием нескольких AsyncTasks в одной и той же активности?

Solutions Collecting From Web of "У вас есть две AsyncTasks в одном действии?"

Не должно быть никаких проблем с несколькими Asynctasks в одном действии. Вы должны быть осторожны, чтобы четко определять значения, которыми манипулирует каждый (например, если задача B полагается на значение, заданное задачей A, убедитесь, что A сначала должен закончить), но в целом это должно быть хорошо. У меня есть проект прямо сейчас с тремя асинхронными задачами, запущенными при первой установке, и до сих пор он тикает.

В соответствии с Док да, вы можете.

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

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

Ответ BEst. Как он находится в stackoverflow.

Да, ты можешь.

AsyncTask – простая реализация обработчика потоков.