各位看官们大家好,上一回中咱们说的是Android中Handler机制的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起Talk Android吧!
看官们,我们在上一章回中介绍了如何使用Handler
机制,其实在此之前,我们就介绍过,而且还有详细的代码示例,那么我们介绍的内容是不是重复了?重复是有的,不过开始介绍的内容和示例是把大家引入到Handler机制中,后面再介绍时是在分析源代码的基础上介绍的,这时加入了Looper
相关的内容,这点在开始的内容中是没有。这是一种循序渐进的方式因此,后面的内容更加全面一些。
有看官问,开始的时候没有创建Looper
,怎么进行消息循环呢?问的好,其实是Activity所在的线程帮我们创建了Looper。我们可以查看相关的源代码,它位于ActivityThread.java文件中,下面是它的源代码,我们只列出了核心功能的代码。
public static void main(String[] args) {
Looper.prepareMainLooper();
ActivityThread thread = new ActivityThread();
thread.attach(false, startSeq);
if (sMainThreadHandler == null) {
sMainThreadHandler = thread.getHandler();
}
Looper.loop();
}
class H extends Handler {
public void handleMessage(Message msg) {
switch (msg.what) {
case BIND_APPLICATION:
AppBindData data = (AppBindData)msg.obj;
handleBindApplication(data);
break;
case EXIT_APPLICATION:
if (mInitialApplication != null) {
mInitialApplication.onTerminate();
}
Looper.myLooper().quit();
break;
}
}
}
从上面的源代码可以看出,它和我们在上一章回中列出的步骤是相同的。看官们,这个源代码既可以看作是一个实际使用的例子,也帮我们说明了Activity所在线程如何创建Looper的过程,真是一箭双雕呀。不过有些看官还是觉得没有自己动手的感觉好,看官们不用着急,在接下来的章回中,我们会给你们自己动手的机会的。
各位看官,关于Android中Handler机制的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!