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。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果的指纹坏了怎么办 苹果7指纹坏了怎么办 苹果6指纹坏了怎么办 指纹浅打不了卡怎么办 我要贷款5万怎么办 拍拍贷一千不还怎么办 牙龈肿里面有脓怎么办 爱奇艺会员账号忘了怎么办 被私立医院坑了怎么办 在医院被坑了怎么办 流产后子宫内膜薄怎么办 人流后内膜过厚怎么办 子宫内膜薄月经量少怎么办 子宫内膜很薄该怎么办 月经量少子宫内膜薄怎么办 子宫内薄没月经怎么办 感冒20多天不好怎么办 皮肤干燥又痒怎么办了 眼周皮肤很干怎么办 产后掉头发很厉害怎么办 班上学生很吵怎么办 进了网贷黑名单怎么办 预约了挂号没去怎么办 吃完米索手心痒怎么办 三岁宝宝湿疹了怎么办 割完剥皮后水肿怎么办 微医预约挂号后怎么办 人流后出现腰疼怎么办 生育服务单丢了怎么办 客厅地面砖坏了怎么办 门锁很涩不好开怎么办 胶水粘到手机上怎么办 沾鞋胶水粘到手怎么办 轮胎内衬板坏了怎么办 轿车后减震异响怎么办 租的房间隔音差怎么办 彩钢房顶下雨响怎么办 酷派手机开不开机怎么办 酷派手机无法开机怎么办 酷派手机丢了怎么办 实木家具掉漆了怎么办