首先说明:本文不会讲的太多,只是简单分析了一下,网上关于 Android消息处理 的介绍已经非常多了,而且都讲的挺好的,就不重复的制造轮子了。
我呢,也是看了看源码,然后在此记录,便于以后回顾。亲自去看一看,会比看别人的文章好很多倍,记忆也会更加深刻。即使忘了,回忆起来也会非常快。

分享一篇文章:
http://www.cnblogs.com/codingmyworld/archive/2011/09/14/2174255.html
只不过这篇文章是2011年9月写的,有点早。
去年我也是把这篇文章看了好多遍的。


对于 Message,MessageQueue,Looper ,Handler 的简单分析,
如下图:

昨天有人问了个问题:在子线程中new Handler()会怎么样?

下图就是答案,因为在子线程中,没有 Looper ,必须手动调用 Looper.prepare(); 之后,才能把本线程升级为 Looper线程。

也正是这个问题,验证了第一张图里面的结论,真正做事的人,是 Message,MessageQueue,Looper 这帮人,Handler 只是更方便的管理他们。
而 Looper 就是核心类。

那为什么在主线程中我们都没有手动调用 Looper.prepare(); 也能使用 Handler 呢?

看下面这张图,知道答案了吧?



收藏一些好文章:
Android消息机制的原理及源码解析