AsyncTask注意事项

需要知道的重点:1.       在1.6之前,所有的AsyncTask在一个单独的线程中有序的执行。2.       从1.6到2.3,这些AsyncTask在一个线程池中执行,但是有上限。3.       从3.0开始,又使用最早的方案!他们在一个单独的线程中有序的执行,除非你调用executeOnExecutor,并且传入一个ThreadPoolExecutor。解决方法:

publicclass ConcurrentAsyncTask {    
  public static void execute(AsyncTask as) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (Build.VERSION.SDK_INT <Build.VERSION_CODES.HONEYCOMB) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as.execute();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp; }
}

相关推荐