读书人

Android核心分析 之十一-Android GWES

发布时间: 2012-11-12 12:31:57 作者: rapoo

Android核心分析 之十一-------Android GWES之消息系统

原文地址:http://blog.csdn.net/maxleng/article/details/5552976

?

?

Android?GWES之Android消息系统

?

?

?

?

2?Android的消息模型

Handler属于某个线程,取决Handlerd对象在哪个线程中建立。Handler在构建时做了如下的默认动作:

l?从线程上下文取得Looper。l?通过Looper获取到消息队列并记录在自己的成员mQueue变量中

?

Handler使用消息队列进行对象封装,提供如下的成员函数:

?

l?通过??post(Runnable?r)发送。Runnable是消息处理的回调函数,通过该消息的发送,引起Runable?的回调运行,Post消息放置消息队列的前面。Message.callback=Runable.l?通过?sendMessage发送。放置在所有的Post消息之后,sendMessage发送消息.l?dispatchMessage分发消息。消息带有回调函数,则执行消息回调函数,如何没有则使用默认处理函数:handleMessage。而handleMessage往往被重载成某个继承Handler对象的新的特定的handleMessage。

几乎所有的Message发送时,都指定了target。Message.target=(this).

?

?

?

?

Looper运行在Activity何处?我们现在可以从代码堆栈中纵观一下Looper的位置。

?

NaiveStart.main()

ZygoteInit.main

ZygoteInit$MethodAndArgsCall.run

Method.Invoke

method.invokeNative

ActivityThread.main()

? Looper.loop()

ViewRoot$RootHandler().dispatch()

handleMessage

....

读书人网 >Android

热点推荐