Android面试之Handler机制从使用到源码解析

从使用到源码详解handler、message、MessageQueue、Looper。

几种使用情景

一、子线程向主线程通信。

二、主线程向子线程通信

三、子线程向子线程通信

 

结合以上例子及发消息和接收消息的过程,可以看出做了如下步骤:

1、Handler发消息。然而Handler只负责处理消息,至于消息的提取还是得依赖Looper对象,所以在new Handler之前会有Looper.prepare(主线程在应用启动过程中已创建Looper)。

初始化Handler

到此,就建立了Handler、Looper、MessageQueue的关系,只要调用Looper.loop(),就启动了整套消息循环系统。

到这一步,Looper中若loop到消息则已交给Handler,所以接下来我们可以看,接受消息了。

2、Handler接收并处理消息。

Handler.dispatchMessage,接着又调用handleMessage。这样一个发送到接收处理的流程结束。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值