android中的消息机制

android中的消息机制,一般是通过三个概念来理解的:MessageQueue(消息队列),Handler,Looper。我们知道在安卓中通过子线程是不能更新UI的,如果想在子线程中更新界面的话,只能向主线程中发送消息通知主线程更新界面,而消息机制就是在这个背景下产生的。

在Handler源码中我们可以看到,是依赖MessageQueue和Looper两个对象

1.当我们需要使用Handler的时候首先要调用Looper.prepare()方法

此时会在sThreadLocal中保存一个当前线程的Looper实例,这个实例在接下来的Handler中会使用到

2.以下是创建Handler的源码


通过以上代码我们可以看到,首先会获取一个Looper对象,然后进入到myLooper()方法中

当使用get()方法的时候会获取到刚刚我们设置的Looper对象。

3.使用创建好的Handler对象发送消息。不管是使用handler.sendMessage或者post等方法,最终会走到以下方法

该方法最终会将消息添加到消息队列中。消息是添加到队列中了,但是我们如何去获取数据呢?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 温故而知新,系统整理一下。 1. 相关基础知识: 2. 消息机制: ===我在学习和使用handler的时候,对与...
    小学生的博客阅读 2,206评论 0 0
  • 点击访问原文您还可以加入全栈技术交流群(QQ群号:254842154) 今天探讨Android中的消息机制,主要包...
    hellojammyPlus阅读 5,382评论 2 18
  • 处理消息的手段 android应用启动时,默认有一个主线程,所有操作都会被封装成消息然后交给主线程来处理。UI线程...
    朝花夕拾不起来阅读 1,364评论 0 1
  • 提到Android中的消息机制,首先想到的必定是Handler,Looper和MesageQueue,我们在开发中...
    answer_05阅读 3,017评论 0 4
  • 梧桐半死清霜后。终于,在秋日的肃杀中,告别了烟台,此刻感觉我的心不曾离去。有人跟我说了一段关于宿命论的话,说人生有...
    西山都是坟阅读 1,477评论 0 0

友情链接更多精彩内容