android异步任务复习

handler:子线程和主线程通讯

     核心点:通过threalocal这个类保存looper对象(此类的特点是在哪个线程中存,就只能在哪个线程中取出来)

                 looper.prepra(),创建looper对象并保存在当前的线程中。 

                looper.loop(),抽取消息,从而在handmessage方法中回调结果。

                在哪个线程获取到消息,不是基于在哪个线程创建handler,而是看looper保存在哪个线程里面。

                如果采用强引用来使用handler(也就是new的方式),则可能发生内存泄漏,解决的办法是,采用静态内部内的方             式,使用弱引用来规避。  


asynctask:简单使用以及三个泛型参数

            底层原理是,new了一个work(继承了callable),然后new一个future(继承了runnable),把work当成参数传入                 future中,然后调用onPreExecte();然后通过线程池开启一个任务,在future的runable方法中调用doInbackground(),               然后通过handler发送消息到主线程,调用onpostExecte。


          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值