Mukund
Mukund

Reputation: 1105

Can you have two AsyncTasks in one Activity?

I have already developed an Activity which will parse JSON data and display the results in a ListView. I am using an AsyncTask for this purpose.

What I want now is that, when I click on an item in the ListView, the file should start downloading. Can I write another AsyncTask in the same activity so that this AsyncTask will do the downloading work for me? Is there any problem with having multiple AsyncTasks in the same activity?

Upvotes: 14

Views: 4793

Answers (3)

Crazy Coder
Crazy Coder

Reputation: 508

Yes.. You can.

AsyncTask is simple thread handler implementation.

Upvotes: 2

Matter Cat
Matter Cat

Reputation: 1578

There shouldn't be any problem with multiple Asynctasks in a single activity. You should be careful to clearly define the values that each one manipulates (for example, if task B relies on a value given by task A, make sure that A must finish first), but in general, it should be fine. I have a project right now with three asynctasks running upon first install, and it's ticking along fine thus far.

Upvotes: 5

squiroid
squiroid

Reputation: 14027

As per from the Doc yes you can.

When first introduced, AsyncTasks were executed serially on a single background thread. Starting with DONUT, this was changed to a pool of threads allowing multiple tasks to operate in parallel. Starting with HONEYCOMB, tasks are executed on a single thread to avoid common application errors caused by parallel execution.

If you truly want parallel execution, you can invoke executeOnExecutor(java.util.concurrent.Executor, Object[]) with THREAD_POOL_EXECUTOR.

BEst answer How is itself on stackoverflow.

Upvotes: 11

Related Questions