三、AsyncTask

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之后串行方式 但是可以通过一个参数进行设置

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容