# Handler & AsyncTask

作者: 卡路fly | 来源:发表于2020-04-29 16:36 被阅读0次

    Handler

    Looper、Handler、MessageQueue、Message

    工厂生产线:

    • Looper 发动机
    • MessageQueue 传送带
    • Message 商品
    • Handler 工人
    小工厂

    Handler与Thread线程如何关联

    Looper属于某个线程,消息队列存贮在Looper,消息队列通过Looper与特定线程关联。Handler与Looper、MessageQueue关联,因此handler与Thread线程关联。

    子线程如何创建Handler

    子线程创建Looper,if looper为空,抛出异常,子线程没有调用Looper.prepare之前,该线程looper为空

    new Thread() {
        Handler handler = null;
        public void run() {
            // 1. 创建Looper,并绑定到ThreadLocal
            Looper.prepare();
            handler = new Handler();
            // 2. 启动消息循环
            Looper.loop();
        }
    }.starh();
    

    AsyncTask

    是Android封装好的Thread+Handler组合,基于异步消息处理机制,可以简单的从子线程切换主线程。

    image.png image.png

    图片来源


    相关文章

      网友评论

        本文标题:# Handler & AsyncTask

        本文链接:https://www.haomeiwen.com/subject/lbknwhtx.html