这篇文章用来记录Android提供的轻量级异步类AsyncTask,文章分为一下几个章节:
- 什么是AsyncTask
- AsyncTask的使用方式
- AsyncTask的内部原理
- AsyncTask的注意事项
①什么是AsyncTask?
AsyncTask是Android提供的轻量级的异步任务类,它本质上是是一个封装了Handle和线程池的异步框架。通过AsyncTask可以更加方便的执行后台任务以及更新UI。
但是,AsyncTask并不适合执行特别耗时的操作,特别耗时的操作建议使用线程池。
AsyncTask的内部封装了两个线程池(SerialExecutor和THREAD_POOL_EXECUTOR)和一个Handler(InternalHandler)。其中SerialExecutor线程池用于任务的排队,让需要执行的多个耗时任务,按顺序排列,THREAD_POOL_EXECUTOR线程池才真正地执行任务,InternalHandler用于从工作线程切换到主线程。
② AsyncTask的使用方式
AsyncTask的使用方式就涉及到三个参数,五个方法
1.三个参数
AsyncTask的类声明如下:
public abstract class AsyncTask<Params, Progress, Result>
AsyncTask是一个泛型抽象类,有三个泛型参数,三个泛型类型参数的含义如下:
Params: 开始异步任务执行时传入的参数类型;
Progress:异步任务执行过程中,返回进度值的类型;
Result&