Looper长时间收不到消息会导致ANR出现吗

Looper长时间收不到消息会导致ANR出现吗?
Looper长时间收不到消息,会导致主线程阻塞,这样会导致ANR出现吗?

Looper的工作就是盯着消息队列时刻准备干活,没活的时候就摸鱼,他是不会阻塞线程的。如果出现ANR的应该是你的Message所要进行的工作,例如两个Message都是要在主线程干活,前面一个耗时较多,于是后面一个等呀等呀就超时了,就会报了ANR。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: Handler 理解记录中的 8、Looper.loop()死循环为什么不会出现anr 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    anr 是 封装的 handler消息

    本身是需要 通过Looper.loop()来处理的

    anr 是与Looper.loop()死循环不相关联的功能


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

你是用handler发送message遇到这个问题的吗?
收不到消息一般不会导致anr,也不会阻塞主线程,有可能是手机问题