谈谈我对Handler的理解

Handler:
是一种消息处理机制
为什么处理消息:用于更新UI
Handler是Android提供的一种异步回调处理消息机制
通常Handler是在Activity/Fragment中使用,进行消息的处理
Handler handler = new Handler(){}

handler通常通过:
	1 public Handler(){}
	2 public Handler(Looper loop){}
	3 public Handler(Looper loop,Callback c){}
	4 public Handler(Looper loop,Callback c,boolean async){
		不管handler怎么调用,最后都是回到这个方法中
	}

主线程通过无参方法调用时,不会空指针的原因是laucher(是一个特殊的Activity)
点击时调用onClickListener(View v);会判断其坐标,判断是哪一个App发出的请求
Application启动会通过Socket长链接,通知Zygote()进程判断这个Application是否存在
不存在的话就会fork(反射)自身并返回Application的实例,在ActivityThread中的main方法中
在子线程中会调用looper.prepareMainLooper();Trace Looper.loop()方法,通过这个方法就会连接自身的构造,调用looper.loop()方法的时候,会调用MessageQueue消息队列,当MessageQueue发送消息的时候,会调用enqueueMessage()消息入队,然后调用looper.loop出队,调用Message msg = messageQueue.next();如果这个消息队列为空,就结束这个循环
当Handler发送消息的时候,会在MessageQueue中判断是否有没有
有直接返回,没有就调用obtaio()创建

各位大佬有哪些更好的建议,欢迎提出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值