一起Talk Android吧(第一百七十八回:Android中的Handler机制七)

本文通过实例详细解析了Android中Handler机制的工作原理,包括Looper的创建过程及其在Activity线程中的作用,为开发者提供了深入理解并正确应用Handler的基础。

各位看官们大家好,上一回中咱们说的是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机制的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值