Android中的Handler, Looper, MessageQueue和Thread

今天简单对andriod的消息机制做一个简单的概述,主要包括handler messagequeue,Looper。这是去面试的时候问的最多的基础的知识点,敲小黑板拉。。。。。

MessageQueue:内部实现并不是用的队列,实际上它是通过一个单链表的数据结构来维护消息列表。只要包括两个操作:插入和读取,对应的方法分别是enqueueMessage和next ,其中enqueueMessage的作用是往消息队列中插入一条消息,next的作用是从消息队列中取出一条消息并将其从消息队列中移除

Looper :在消息机制中扮演者消息循环的角色,具体来说它会不停的从MessageQueue中查看是否有新的消息,如果有新的消息立马就处理,否则就一直堵塞在那里 有一个重要的方法就是loop,只有调用loop消息循环系统才能真正的起作用。

Handler: 主要包含消息的发送和接收过程,消息的发送可以通过post的一系列方法以及send的一系列方法来实现,post的一系列方法最终是通过send的一系列方法来实现

Android消息机制总结来看:Handler发送消息的过程仅仅是向消息队列中插入一条消息,MessageQueue的next方法就会返回这个消息给Looper,Looper收到消息后就开始处理,最终消息由Looper交给Handler处理,即Handler的dispatchMessage方法会被调用,这时Handler就进入处理消息的阶段。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值