在项目中使用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