Android 触发 ANR 之前的毫秒数?

How long in milliseconds before Android triggers an ANR?

在触发 ANR 之前,主线程可以在 Android 上阻塞多长时间?

令人惊讶的是,我似乎找不到这个问题的答案。

这告诉我没有固定的数量,这可能取决于设备,Android 版本,and/or 运行环境。

是否可以通过在运行时检查一些全局变量来简单地找到它?

如果不是,那么Android用来决定超时长度的formula/algorithm是什么?

当出现以下情况之一时,您的应用将触发 ANR:

当您的 activity 处于前台时,您的应用在 5 秒内未响应输入事件或 BroadcastReceiver(例如按键或屏幕触摸事件)。 虽然您在前台没有 activity,但您的 BroadcastReceiver 在相当长的时间内尚未完成执行。

来源:https://developer.android.com/topic/performance/vitals/anr