在項目中使用AsyncTask時,發現建立的多個實例沒法同時運行,好比:html
AsyncTask t1 = new MyTask(); AsyncTask t2 = new MyTask(); t1.execute(); t2.execute();
發現t2沒法當即運行,而是等待t1運行完成後運行;java
解決辦法:ui
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.HONEYCOMB_MR1) { task.execute(); } else { task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); }
用executeOnExecutor代替execute方法,可是executeOnExecutor在API11以後才能使用,因此進行判斷下。htm
具體緣由分析:http://bbs.51cto.com/thread-1114378-1-1.htmlblog