浅谈近期了解的Handler机制

最近公司的项目需要异步加载多条数据,之前一直是起线程加载,也没用过Handler和AsyncTask,但是线程中不能更新UI,趁着这次机会,自己也是好好学习了一下handler的机制。
其实不走源码的话,handler的用法很简单,新建一个线程,在线程中定义需要使用的操作,操作完回复,这里的回复其实就是新建一个Message对象,根据Message对象的定义,通过新建Handler,调用其sendMessage方法,继而转到handleMessage方法中,在这个方法中进行UI 的更新等操作。
当然Handler中的方法还是很多的,不过我常用的就是postDelayed和handleMessage方法。
肯定有人像我一样很好奇Handler的实现机制,其实一张图就能解释一切。(嘿嘿,借用一下郭霖大神的图)
这里写图片描述
Looper的作用:每个线程只有一个Looper,他负责管理MessageQueue,会不断的从MessageQueue取出消息,分发给对象 的handler

MessageQueue的作用:由Looper管理,而MessageQueue则采用先进的方法来管理Message!

Handler的作用:它把消息发送给Looper管理的MessageQueue,并负责处理Looper分发给他的消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值