Android 主线程阻塞了为什么 ANR 弹框还能弹出来?

ANR 弹出背景

  1. KeyDispatchTimeout 事件响应处理超过 5s
  2. BroadcastTimeout  广播 onReceive() 处理超过 10s

  3. ServiceTimeout 服务的生命周期超过 20s 

这些种种原因都是在主线程进行了耗时操作,那么 ANR 这个框也是个 UI 是如何在主线程阻塞的情况下弹出来的?

 

你可以理解为anr的弹窗是系统的,APP只是占用一部分手机资源