如果一个Activity有多个handler时候,怎样知道handler1发送的消息不会被handler2接收?
同理handler2发送的消息不会被handler1接收?
private boolean enqueueMessage(MessageQueue queue, Message msg, long uptimeMillis) {
msg.target = this;
if (mAsynchronous) {
msg.setAsynchronous(true);
}
return queue.enqueueMessage(msg, uptimeMillis);
}
我们看到在 enqueueMessage 方法里面有一个, msg.target = this; 这句话就是说我们通过 sendMesasge(msg) 一层一层的传递消息,最后这个 msg.target=this 就是把当前的这个 handler 标记给这个当前我们发送的 msg,然后再把这个打好标记的信息添加到消息队列中。
更新中。。。

本文深入探讨了Android中Handler的工作原理,特别是如何确保不同Handler间的消息不会互相干扰。通过分析enqueueMessage方法,解释了msg.target=this的作用,即为每个消息打上特定Handler的标记,从而实现消息的准确投递。
1万+

被折叠的 条评论
为什么被折叠?



