AsyncTask.executeOnExecutor() before API Level 11
The normal way we do AsyncTask in Android is, from Android API: private class DoIntenseTask extends AsyncTask<Object, Object, Void> { protected Void doInBackground(Object... params) { for (Object param : params) { Object rtnObj = doIntenseJob(param); publishProgress(rtnObj); } return null; } protected void onProgressUpdate(Object... progress) { for (Object rtnObj : progress) { updateActivityUI(rtnObj); } } } My intense tasks are loosely coupled and the execution order does not matter, by doing this way, a single thread is allocated to run a list of intense tasks. personally I think this is a