Android AsyncTask
简介: AsyncTask是android提供的轻量级的异步类。比Handler更轻量级一些,适用于简单的异步处理。 AsyncTask内部封装了Thread和Handler,简化Thread+Handler,可以让我们在后台进行计算并且把计算的结果及时更新到UI上。 AsyncTask并不是像多个线程那样完全并行执行的。 优缺点: 优点: 简单,快捷 过程可控 结构清晰,功能定义明确 对于多个后台任务时,简单,清晰 缺点: 在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来. 在单个后台异步处理时,显得代码过多,结构过于复杂(相对性) AsyncTask中维护着一个长度为128的线程池,同时可以执行5个工作线程,还有一个缓冲队列,当线程池中已有128个线程,缓冲队列已满时,如果此时向线程提交任务,将会抛出RejectedExecutionException。 解决:由一个控制线程来处理AsyncTask的调用判断线程池是否满了,如果满了则线程睡眠否则请求AsyncTask继续处理。 构造方法: AsyncTask直接继承于Object类,位置为android.os.AsyncTask。要使用AsyncTask工作我们要提供三个泛型参数,并重载几个方法(至少重载一个)。 AsyncTask定义了三种泛型类型 Params,Progress和Result。 Params