2015-03-09 3 views
14

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

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

+1

Конечно, вы можете – Apurva

ответ

5

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

11

Как с Doc да вы можете.

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

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

BEst отвечает How сам по себе на stackoverflow.

2

Да .. Вы можете.

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

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