Android——学习之 Handler_01简单的理解使用

笨比最近搬砖 ,频繁的看到Handler使用。之前只是知道Handler是可以更新UI页面的,但是具体的流程以及其他的使方式笨比一点也不清楚,从网上参考了一些资料,记录下学习记录,加深记忆

1、使用handler 更新UI的原因

例如,页面有一个按钮或者文本框,如果按钮的响应或者获取文本框的时候 有其他耗时任务,会造成页面假死状态。在Android中,主线程是非线程安全的,也就是说UI的更新只能在本线程中完成,其他线程无法直接对主线程进行操作。
为了解决以上问题, Android设计了handler机制,由handler来负责与子线程进行通讯,从而让子线程与主线程之间建立起协作的桥梁。

2、Handler的工作原理

Handler 通过将消息发送给 MessageQueue(消息队列)中,MessageQueue(消息队列)是通过Looper对象处理消息的。
在主线程中 会有默认的Looper对象,如果在子线程中使用Handler,必须要在当前线程中创建Looper对象,否则会抛异常。
Looper对象在创建的时候会实例化MessageQueue对象。Looper 以死循环的形式不断从MessageQueue取出消息,并发送给对应的Handler处理。
我理解的消息的流程是 handler——looper——MessageQueue——looper——handler;

3、Handler常用使用方式

handler.post方法内部还是使用的handler.sendMessage()的方式去处理的。
	//非延迟
	handler.post(Runnable);
	//延迟
	handler.postDelayed(Runnable ,long);
	//举例
		handler.post(new Runnable(){
			@Override
			pulic void run(){
			//更新UI
			
			})
	//非延迟	
	handler.sendMessage(Message);
	//延迟发送消息
	handler.sendMessageDelayed(Message,long);

简单的记录一下,目前所了解的知识点。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值