Android 消息机制 以及Message、Handler、Message Queue、Looper之间的关系。

本文详细解析了Android中Handler机制的工作原理,包括Handler、Looper、MessageQueue之间的关系及其运作流程。强调了Looper在创建Handler线程中的作用及如何正确终止Looper防止内存泄漏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关系:

Message消息对象,MessageQueue存放Message的载体,Looper就是无线循环查找MessageQueue中是否有消息,Handler就是创建的时候会使用Looper来构建消息循环。


工作原理:

创建handler的线程中一定有个looper,不然就会报错。

Handler使用方法有2个,一个是post,一个是send。Post最终也是调用send的方法。Send方法会调用MessageQueue的enqueuemessage的方法,把消息放入队列。此时looper是个无线循环,会无线循环从队列中取出消息,取出后,消息中的runnable或handler的handlermessage方法就会被调用。

注:

Looper是运行在创建handler的线程中的,所以会吧这个消息给在同一线程的handler处理。

不需要的时候记得终止looper。因为如果你手动处理完毕你需要的业务逻辑以后 如果不调用quit或者quitsafely方法 looper的loop方法就一直执行下去,永远不停止,你这个子线程永远都结束不了。很容易就内存泄露或者其他错误,所以我们要牢记 当子线程使用looper的时候 业务处理完毕记得手动关闭looper。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值