美文网首页
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