一.什么是AsyncTask
它本质上就是一个封装了线程池和handler的异步框架
做不了高并发,太耗时的操作
二.AsyncTask的使用方法
1.三个参数
2.5个方法
三.AsyncTask内部原理
1.AsyncTask的本质是一个静态的线程池,AsyncTask派生出来的子类可以实现不同的异步任务,这些任务都是提交到静态的线程池中执行。
2.线程池中的工作线程执行doInBackground方法执行异步任务
3.当任务状态改变之后,工作线程会向UI线程发送消息,AsyncTask内部的InternalHandler响应这些消息,并调用相关的回调函数
四.AsyncTask的注意事项
一.内存泄漏
非静态内部类持有外部类的匿名引用
二.生命周期
在activity的onDestory调用AsyncTask的cancel方法
三.结果丢失
屏幕旋转,activity由于内存不够被杀掉,之前运行的AsyncTask持有之前的activity的引用,onPostExcute方法执行无效
四.
1.6以前串行
1.6-2.3 并行
2.3以后串行









网友评论