Android单线程模型中Message、Handler、Message Queue、Looper之间的关系---附实例源码

时间:2016-07-29 08:33:11
【文件属性】:

文件名称:Android单线程模型中Message、Handler、Message Queue、Looper之间的关系---附实例源码

文件大小:982KB

文件格式:RAR

更新时间:2016-07-29 08:33:11

Message Handler Message Queue Looper

四者之间的关系: Handler获取当前线程中的looper对象,looper用来从存放Message的MessageQueue中取出Message,再有Handler进行Message的分发和处理. 简单定义: 1、Message Queue(消息队列): 用来存放通过Handler发布的消息,通常附属于某一个创建它的线程,可以通过Looper.myQueue()得到当前线程的消息队列. 2、Handler: 可以发布或者处理一个消息或者操作一个Runnable,通过Handler发布消息,消息将只会发送到与它关联的消息队列,然也只能处理该消息队列中的消息. 3、Looper: 是Handler和消息队列之间通讯桥梁,程序组件首先通过Handler把消息传递给Looper,Looper把消息放入队列。Looper也把消息队列里的消息广播给所有的Handler:Handler接受到消息后调用handleMessage进行处理. 4、Message: 消息的类型,在Handler类中的handleMessage方法中得到单个的消息进行处理,在单线程模型下,为了线程通信问题,Android设计了一个Message Queue(消息队列), 线程间可以通过该Message Queue并结合Handler和Looper组件进行信息交换。 博客链接:http://blog.csdn.net/a13429921973/article/details/9281569


【文件预览】:
HandlerDemo
----AndroidManifest.xml(881B)
----res()
--------layout()
--------drawable-ldpi()
--------menu()
--------drawable-mdpi()
--------values-sw600dp()
--------drawable-hdpi()
--------values-sw720dp-land()
--------drawable-xhdpi()
--------drawable-xxhdpi()
--------values()
----src()
--------andieguo()
----proguard-project.txt(781B)
----bin()
--------classes()
--------dexedLibs()
--------AndroidManifest.xml(881B)
--------res()
--------HandlerDemo.apk(192KB)
--------classes.dex(443KB)
--------resources.ap_(40KB)
----.classpath(364B)
----assets()
----project.properties(562B)
----ic_launcher-web.png(50KB)
----libs()
--------android-support-v4.jar(384KB)
----.project(847B)
----gen()
--------andieguo()

网友评论

  • 新手很适用
  • 仅仅适合新手
  • 代码都可以用~适合新手学习~~
  • 可以用,但不是很好
  • 恩恩 楼主写的对于我这个初学者能勉强看懂,给大家推荐一个网址。这个通过举了四个例子来清楚地说明了handler message 等之间的关系。个人理解handler就是一个进程放在其他进程里的间谍~~~http://www.cnblogs.com/livesoft/archive/2011/04/19/2021001.html
  • 没有看懂,不知道写什么。
  • 基本 还不错 还挺像那么回事!!
  • 很不错,解决了我的疑问
  • 不知道这个程序在做什么,我是知道它是关于Message,Handler和Looper的程序
  • 可以用,但不是很好
  • 可以用,但不是很好
  • 首先不知道这个程序在做什么,我是知道它是关于Message,Handler和Looper的程序,可是在手机上点击什么反应都没有,然后,虽然在控制台有些信息输出。主线程什么都没变,副线程每次+1,可是没看懂到底是什么意思