您当前的位置: 首页 >  android

Android技术栈

暂无认证

  • 0浏览

    0关注

    111博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Android Framework | Handler 消息机制详解

Android技术栈 发布时间:2022-09-16 19:59:45 ,浏览量:0

引言

消息机制是 Android 中重要的线程间通信手段;它的存在可以让一个线程通知另一个线程去工作

众所周知 Handler 在 Android 中的地位非常重要, 从处理异步线程任务队列的 HandlerThread 到从子线程与UI线程的通信, 再到 ActivityThread 中四大组件的 sendMessage 调度, 再到进程间通信与之关联 Messenger 可以说是从头到尾贯穿的整个 Android 系统的枝枝蔓蔓;所以说搞明白,搞懂 Handler 消息运行机制与原理至关重要

下面我们来看一下 Handler 的工作流程图

我们先从 Handler 源码看起吧,下一步看 MessageQueue 源码,最后看 Looper 源码

Handler 工作原理

Handler的主要工作是发送消息和接受消息

消息发送过程

消息的发送我们可以通过一系列 send 和 post 方法 来看一下这些 send 和 post 方法源码吧

    public final boolean sendEmptyMessage(int what)
    {
        return sendEmptyMessageDelayed(what, 0);
    }

    public final boolean sendEmptyMessageDelayed(int what, long delayMillis) {
        Message msg = Message.obtain();
        msg.what = what;
        return sendMessageDelayed(msg, delayMillis);
    }
    public final boolean sendMessage(Message msg)
    {
        return sendMessageDelayed(msg, 0);
    }

    public final boolean sendMessageDelayed(Message msg, long delayMillis)
    {
        if (delayMillis             
关注
打赏
1665219970
查看更多评论
0.0526s