首先还是推荐几篇博客:
http://www.cnblogs.com/-OYK/archive/2011/08/03/2126657.html
http://www.cnblogs.com/coolszy/archive/2011/04/25/2026662.html
再来说说我的理解:
消息处理机制适用场景:
比如:a)监听器类中要控制UI界面类很多组件的属性值,可以传参,可以设置static,但这在有大量组件属性值需要变化时就行不通了,这时可以运用消息处理机制在监听器中通知UI界面类,在界面类中改变属性值,并重新绘制UI.
b)需要在另外的线程中改变界面。
此处注意两个很好用的规则:1)不要在界面线程之外绘制界面。2)不要阻塞界面线程,否则会有不好的用户体验。
再来解析消息机制有关的两个个变量:Looper类,Handler类
Looper类:MessageQueue的管理者
Looper类用来管理特定“线程内”对象之间的消息交换(Message Exchange)。你的应用程序可以产生许多个线程。而一个线程可以有许多个组件,这些组件之间常常需要互相交换讯息。如果有这种需要,您可以替线程构造一个Looper对象,来担任讯息交换的管理工作。Looper对象会建立一个MessageQueue数据结构来存放各对象传来的消息(包括UI事件或System事件等)。
在一个线程中,如果存在Looper对象,则必定存在MessageQueue对象,并且只存在一个Looper对象和一个MessageQueue对象。在Android系统中,除了主线程有默认的Looper对象,其它线程默认是没有Looper对象。如果想让我们新创建的线程拥有Looper对象时,需要在线程中首先调用Looper.prepare()来创建消息队列,然后调用Looper.loop()进入消息循环。
Handler:
消息的处理者.Handler的作用是把消息加入特定的(Looper)消息队列中,并分发和处理该消息队列中的消息。构造Handler的时候可以指定一个Looper对象,如果不指定则利用当前线程的Looper创建.然后Handler就可以把消息传给该Looper对象所在的线程,同时Handler也可以接受来自Looper的消息。
简而言之:Handler.sendMessage()方法把消息传送到looper线程所在的essageQueue队列,然后自动调用Handler.handMessage()方法响应消息并做对应的处理。
相关推荐
Android 消息处理机制之 Message 中 obtain()源代码剖析 http://blog.csdn.net/ahuier/article/details/17012923
Android 消息处理机制原理 - 简书1
【Android 开发】: Android 消息处理机制之 Handler 与 Message http://blog.csdn.net/ahuier/article/details/17012005
【Android 开发】: Android 消息处理机制之 Handler 中 sendMessage() 源代码剖析 http://blog.csdn.net/ahuier/article/details/17013647
学习Android,新手必备。 主要介绍Android是如何在多线程下通过Handler来传递信息。
Android事件处理机制
详细描述了Android的消息处理机制中,Looper和handler类详解
本文介绍了Android中的消息处理机制,给出了Android消息处理中的几个重点类Handler、Message、MessageQueue、Looper、Runnable、Thread的详细介绍,提供了两个消息处理的实例代码,并深入Android源代码分析了使用...
Android应用程序与传统的PC应用程序一样,都是消息驱动的。也就是说,在Android应用程序主线程中,所有函数都是在一个...掌握Android应用程序消息处理机制,有助于我们熟练地使用同步和异步编程,提高程序的运行性能
android 异常处理机制 ,关于android 如何处理异常。
Android绘图机制与处理技巧(三)——Android图像处理之图形特效处理
详细描述了Android的消息处理机制,Message和MessageQueue类的详解
Android多线程及异步任务消息处理机制 一 Handler的使用博文源代码 想要学习更多有关于Android的知识 请关注博客http: blog csdn net yegongheng
那么在Android系统中,消息处理机制是怎么实现的呢?在程序开发时,我们经常会使用Handler处理Message(消息)。所以可以知道Handler是个消息处理者,Message是消息主体。除此之外还有消息队列和消息轮询两个角色。...
本文介绍了Android中的消息处理机制,给出了Android消息处理中的几个重点类Handler、Message、MessageQueue、Looper、Runnable、Thread的详细介绍,提供了两个消息处理的实例代码,并深入Android源代码分析了使用...
在Android应用程序中,有一类...这个PPT讲Android应用程序输入事件的分发和处理过程,主要涉及到输入管理InputManager、输入事件监控线程InputReader、输入事件分发线程InputDispatcher,以及应用程序主线程消息循环。
Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。 Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法...