Is It Possible To Run Multiple Asynctask In Same Time?
I've two activities in my application. In my Activity A I'm using one AsyncTask and second Activity B also using another one AsyncTask. In my Activity A I've upload some data to se
Solution 1:
use executor as follows
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
new Save_data().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, location);
} else {
new Save_data().execute(location);
}
See this
Solution 2:
Yes, it is, but since Honeycomb, there's a change in the way AsyncTask
is handled on Android. From HC+ they are executed sequentially, instead of being fired in parallel, as it used to be. Solution for this is to run AsyncTask
using THREAD_POOL_EXECUTOR
executor explicitely. You can create helper class for that:
publicclassAsyncTaskTools {
publicstatic <P, T extendsAsyncTask<P, ?, ?>> voidexecute(T task) {
execute(task, (P[]) null);
}
@SuppressLint("NewApi")
publicstatic <P, T extendsAsyncTask<P, ?, ?>> voidexecute(T task, P... params) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
} else {
task.execute(params);
}
}
}
and then you can simply call:
AsyncTaskTools.execute( newMyAsyncTask() );
or with params (however I rather suggest passign params via task constructor):
AsyncTaskTools.execute( new MyAsyncTask(), <your params here> );
Post a Comment for "Is It Possible To Run Multiple Asynctask In Same Time?"