转http://www.eoeandroid.com/forum-viewthread-tid-49595-highlight-looper.html一、几个关键概念1、MessageQueue:是一种数据结构,见名知义,就是一个消息队列,存放消息的地方。每一个线程最多只可以拥有一个MessageQ...
分类:
移动开发 时间:
2014-06-21 00:43:20
阅读次数:
226
1 开头
上一讲讲到Looper,大家对Looper有了大概的了结(好几个月过去了…)
大家都知道一个Handler对应有一个MessageQueue,
在哪个线程上new Handler(如果不指定looper对象),那么这个handler就默认对应于这个线程上的prepare过的Looper
如下图Handler.java代码所示,mLooper由Looper.myLooper()指定...
分类:
移动开发 时间:
2014-06-18 06:53:20
阅读次数:
274
本来接下来应该分析MessageQueue了,可是我这几天正好在实际开发中又再次用到了SparseArray(之前有用到过一次,那次只是
大概浏览了下源码,没做深入研究),于是在兴趣的推动下,花了些时间深入研究了下,趁着记忆还是新鲜的,就先在这里分析了。
MessageQueue的分析应该会在本周末给出。
和以往一样,首先我们来看看关键字段和ctor:
private st...
分类:
移动开发 时间:
2014-06-17 16:30:47
阅读次数:
373
IdleHandler 在API上面的解释如下:public final void
addIdleHandler (MessageQueue.IdleHandler
handler)向消息队列中添加一个新的MessageQueue.IdleHandler。当调用IdleHandler.queueId...
分类:
移动开发 时间:
2014-06-11 09:24:31
阅读次数:
241
我们的常用的系统中,程序的工作通常是有事件驱动和消息驱动两种方式,在Android系统中,Java应用程序是靠消息驱动来工作的。
消息驱动的原理就是:
1. 有一个消息队列,可以往这个队列中投递消息;
2. 有一个消息循环,不断从消息队列中取出消息,然后进行处理。
在Android中通过Looper来封装消息循环,同时在其中封装了一个消息队列MessageQueue。
另外Andro...
分类:
移动开发 时间:
2014-05-22 08:20:57
阅读次数:
253
关于Handler的总结。
Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。
Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。
MessageQueue:...
分类:
移动开发 时间:
2014-05-03 21:57:10
阅读次数:
365