AsyncTask学习笔记
来源:互联网 发布:圆梦会计软件联系方式 编辑:程序博客网 时间:2024/06/05 09:30
AsyncTask的机制原理:
1.本质是一个静态线程池,派生出来的子类的任务都提交的到静态线程池中去执行。
2.在doInBackground()方法中是在工作线程执行异步任务调用而方法。
3.任务状态改变,是由任务线程发送给UI线程消息,AsyncTask中有个InteralIntent来接收消息回调给先关方法,例如:onPreExcute9()/onProgressUpdate()/onResultExcute()。
注意事项:
1.内存泄漏,与hundler原因差不多,asyncTask非静态内部类持有外部类(Activity)的匿名引用,导致Activity无法回收,解决方法(a)声明也静态内部类;(b)构造函数持有activiy的弱引用;(c)在activity中的onDestroy方法中调用asyncTsak.cancel()取消异步任务。
2.生命周期,asyncTsak不会onDestroy()中自动销毁,所以需要手动调用syncTsak.cancel()销毁异步任务。
3.结果丢失,asyncTsak执行后,所在的activity被回收或屏幕旋转,导致生成新的activity,但是asyncTsak还再持有旧的activity的引用(无效的引用),其状态无法通知到新的activity中,故而结果丢失。
4.并行或串行,android1.6之前asyncTsak都是串行,有序执行;1.6-2.3为并行(并发);2.3以后又改为串行,也可以并行通多excuteOnExcutor()方法,会使整个线程池不稳定,官方不建议这样做。AsyncTask做不了高并发、太耗时的操作,太耗时的操作应使用后台service。
- Android学习笔记---AsyncTask
- Android AsyncTask学习笔记
- AsyncTask学习笔记
- AsyncTask学习笔记
- AsyncTask学习笔记
- AsyncTask学习笔记
- AsyncTask学习笔记
- AsyncTask学习笔记
- AsyncTask学习笔记
- AsyncTask学习笔记
- Android学习笔记之AsyncTask
- android 学习笔记 使用AsyncTask
- android学习笔记(七)AsyncTask
- Android应用开发学习笔记之AsyncTask
- android学习笔记1: AsyncTask使用
- Android学习笔记(39):异步任务AsyncTask
- Android学习笔记1-AsyncTask的用法
- Android之AsyncTask的学习笔记
- 输出乘法口诀表
- 协议栈和网卡读书笔记
- 九九乘法表2:
- vnc远程连接树莓派
- effective C++ 学习(Miscellany)
- AsyncTask学习笔记
- java 并发工具包 BlockingQueue-LinkedBlockingQueue
- Source Insight4.0破解,完美支持中文
- retrofit2.0源码分析
- HDU2825-Wireless Password
- RIOT硬件平台调研
- 每天5分钟docker容器技术
- 函数指针
- 为了C币