AsyncTask注意事项

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

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

  

时间: 2024-10-05 04:27:31

AsyncTask注意事项的相关文章

AsyncTask基础(笔记)

安卓异步任务 ---AsyncTask 为什么要异步任务: 1.Android单线程模型 2.耗时操作放在非主线程中执行 AsyncTask为何而生 1.子线程中更新UI 2.封装,简化异步操作 构造AsyncTask子类的参数 AsyncTask<Params, Progress, Result>是一个抽象类,通常用于被继承,继承AsyncTask需要指定如下三个泛型参数: Params: 启动任务时输入的参数的类型,也就是execute()方法中,传入的参数 Progress: 后台任务执

android几种异步处理情况笔记

Handler类:1 在子线程中发送Message2 在主线程中获取.处理Message 在新线程中 通过Handler机制通知UI线程改变界面. 每个线程只能拥有一个Looper,而每个Looper关联一个MessageQueue UI线程中,系统默认初始化了一个Looper对象. Looper.MessageQueue.Handler的作用如下:1 Looper: 每个线程只有一个Looper,它负责管理MessageQueue;通过Looper.loop()方法会不断从MssageQueu

AsyncTask使用注意事项

AsyncTask是android自带的一个异步处理线程 它带了很多参数 都很方便使用 但是有一些注意事项 1: 官网说明: AsyncTasks should ideally be used for short operations (a few seconds at the most.) If you need to keep threads running for long periods of time, it is highly recommended you use the vari

AsyncTask的使用注意事项

AsyncTask的使用注意事项前面的文章曾建议使用AsyncTask而不是使用Thread,但是AsyncTask似乎又有它的限制,这就要根据具体的需求情况而选择合适的工具,No Silver Bullet.下面是一些建议:?改善你的设计,少用异步处理 线程的开销是非常大的,同时异步处理也容易出错,难调试,难维护,所以改善你的设计,尽可能的少用异步.对于一般性的数据库查询,少量的I/O操作是没有必要启动线程的.?与主线程有交互时用AsyncTask,否则就用Thread AsyncTask被设

Android AsyncTask 详解及注意事项

AsyncTask是Android提供的轻量级的异步类,它使创建异步任务变得更加简单,不再需要编写任务线程和Handler实例即可完成相同的任务. AsyncTask定义了三种泛型类型 Params,Progress和Result. Params 启动任务执行的输入参数,比如HTTP请求的URL. Progress 后台任务执行的百分比. Result 后台执行任务最终返回的结果,比如String. 例如: class RetrieveCategoryTask extends AsyncTask

Android AsyncTask使用注意简介及注意事项

      说起Android的AsyncTask,则必须要说到Android中的单线程模型,在Android中只允许UI线程来操作界面,WorkingThread是不允许操作UI的.同时耗时的操作则应尽量放在WorkingThread中来操作,防止阻碍UI线程更新 界面,导致 ANR(Application Not Responding) 异常.这样可以保证UI操作的稳定和流畅,避免造成多线程操作致使UI混乱.      我们可以使用线程池来操作,Android给我们提供了Handler 机制

(二十一)AsyncTask的使用注意事项

改善你的设计,少用异步处理 线程的开销是非常大的,同时异步处理也容易出错,难调试,难维护,所以改善你的设计,尽可能的少用异步.对于一般性的数据库查询,少量的I/O操作是没有必要启动线程的. 与主线程有交互时用AsyncTask,否则就用Thread AsyncTask被设计出来的目的就是为了满足Android的特殊需求:非主线程不能操作(UI)组件,所以AsyncTask扩展Thread增强了与主线程的交互的能力.如果你的应用没有与主线程交互,那么就直接使用Thread就好了. 当有需要大量线程

Asynctask解析以及注意事项

说到AsyncTask这个类,好多人其实不太了解.最近看了下代码,把心得分享给大家.    AsyncTask的execute的执行流程为    先调用ThreadPoolExecutor.execute(mFuture);    然后ThreadPoolExecutor.execute(mFuture) 会调用ThreadPoolExecutor.addWorker(mFuture);    最后ThreadPoolExecutor.addWorker(mFuture)会调用mFuture的r

android AsyncTask使用注意事项以及总结

1. 1) Task的实例必须在UI thread中创建 2) execute方法必须在UI thread中调用 3) 不要手动的调用onPreExecute(), onPostExecute(Result),doInBackground(Params...), onProgressUpdate(Progress...)这几个方法 4) 该task只能被执行一次,否则多次调用时将会出现异常. 如果在子线程中创建调用 onPreExecute()也在创建AsyncTask的子线程中执行,doInB