美文网首页Android面试
Handler消息处理机制

Handler消息处理机制

作者: 烂吹笙 | 来源:发表于2017-12-22 15:27 被阅读0次

    说到Handler就会被问到Handler、Message、Looper之间的关系了。那么Handler为什么要出现呢,它的作用是什么?

    1.Handler的作用

    Android是单线程模型的操作系统。为了避免多线程更新UI出现混乱,出现线程不安全,在Android中只能使用主线程(UI线程)更新UI,那么子线程和UI线程之间的通信怎么通信呢?Handler就是为了解决这个问题的。

    2.Handler、Message、Looper之间的关系

    Handler:消息处理者负责发送消息和消息内容的处理。sendMessage和handleMessage方法</br>
    Message:消息对象,信息的携带者。</br>
    Looper:它是消息的载体,Looper.loop()是一个死循环,会不断的从消息队列中取出消息。如果有消息就会处理,否则会阻塞。</br>
    MessageQueue:用来存放Handler发送的消息的消息队列(双向链表结构)。</br>

    从源码的角度来说,我们通过Handler发送Message到MessageQueue,MessageQueue调用enqueueMessage方法向消息队列中插入一条消息。Looper会不停的轮询Message,它是一个阻塞式死循环,当发现有消息的时候,会调用dispatchMessage方法分发给Handler,Handler通过handlerMessage进行处理这些消息。

    源码就不分析了可以参考郭霖大神鸿洋大神的博客

    相关文章

      网友评论

        本文标题:Handler消息处理机制

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