android - 消息机制

adnroid 消息机制:

由于子线程(如:Timer)不能对 主线程(MainActivity)的组件进行操作,要用到Handler 并复写其内部的Handler Message () 这个方法来对子线程传来消息进行操作。


1.创建Handler  对象并且复写起HandlerMessage()方法。

2.在子线程创建Message对象,并设置好其相关属性。

3.在子线程调用handler.sendMessage ()方法,发送消息。

4.主线程Handler对象接收到消息后!会在HandlerMessage() 方法中处理



以下内容:

1.  Message消息,理解为线程间通讯的数据单元。例如后台线程在处理数据完毕后需要更新UI,则可发送一条包含更新信息的Message给UI线程。

2.  Message Queue消息队列,用来存放通过Handler发布的消息,按照先进先出执行。

3.  HandleHandler是Message的主要处理者,负责将Message添加到消息队列以及对消息队列中的Message进行处理。

4.   Looper循环器,扮演Message Queue和Handler之间桥梁的角色,循环取出Message Queue里面的Message,并交付给相应的Handler进行处理。

5.  线程UI thread 通常就是main thread,而Android启动程序时会替它建立一个Message Queue。

每一个线程里可含有一个Looper对象以及一个MessageQueue数据结构。在你的应用程序里,可以定义Handler的子类别来接收Looper所送出的消息。


消息机制的具体流程:

1.在线程中创建Looper对象,创建对象通过Looer.prepare()方法(或者Looper looper = Looper.getMainLooper();)来创建;

----->创建对象会同时创建出looper对象,和MessageQueue对象 mQueue。

----->mQueue不为空时,马上调用enqueueMessage()方法,把消息添加到消息队列中并进行处理。

2.再创建handler = Handler(looper);来创建Handler对象。

----->通过handler.sendMessage ()方法,把消息添加到消息队列中,消息队列有消息就会马上进行处理。

2运行Looper.loop()方法




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值