1.什么是AsyncTask?
本质上就是封装了线程池和handler的异步框架
2.AsyncTask使用方法
1. onPreExcute ---UI线程
2. doInBackgrond---耗时操作
3. onPostExcute--- 异步结束之后执行
3.AsyncTask机制原理
1.本质是线程池,AsyncTask派生出的子类可以实现不同的异步任务 ,这些任务提交到静态的线程池中执行
2.子线程doInBackgrond执行异步任务
3.任务状态改变后,子线程向UI线程发消息,AsyncTask内部的InternalHandler会响应这些消息,并调用相关的函数
4.AsyncTask注意事项
1.内存泄漏 ---非静态内部类持有外部类的引用同handler
2.生命周期 ---onDestroy中cancelAsyncTask
3.结果丢失 ---横竖屏生命周期 onPostExcute获取的的结果为null
4.并行or串行--- 2.3之后串行方式 但是可以通过一个参数进行设置