美文网首页
Handler零碎记录

Handler零碎记录

作者: shiyuzhe | 来源:发表于2019-06-11 17:42 被阅读0次

    1.message怎么被分发到主线程

    消息的分发是这句:msg.target.dispatchMessage(msg);
    其中msg.target是指发出消息的Handler,在Handler初始化的时候是需要Looper的;
    回到问题我们需要改一下, msg是被分发到Looper所在的线程的

    2.Looper.loop()怎么不把主线程卡死

    死循环又不会卡死线程,造成ANR的根源是消息处理不及时;一个消息的耐心只有n秒,如果等待n秒还没有轮到它的时候就要报告用户了(ANR)。

    3.Looper.prepare()的私有构造方法

    private static void prepare(boolean quitAllowed)
    MainLooper中默认传入的false,表示不允许退出,当Looper调用quit相关方法传递到MessageQueue中会检查

    参考链接:

    相关文章

      网友评论

          本文标题:Handler零碎记录

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