Skip to content
阅读进度

如何理解ANR 类型与超时边界? ​

返回 性能与稳定性 目录

标准回答 ​

不是。输入分发超时常见默认阈值为5秒,还包括无焦点窗口、广播处理、服务执行等不同类型;具体门槛与Android版本和OEM实现有关。

例如广播goAsync后仍有完成期限,工作线程任务结束后需要及时调用PendingResult.finish;进程冷启动也可能占用广播时限。不能把所有广播固定背成同一个10秒,也不能把所有服务相关超时当成相同的ANR机制。

先读ANR reason/subject,确定触发组件、起止时间及相关线程,再结合栈、CPU和Trace追踪等待链。主线程当下空闲不代表超时发生时空闲。

追问与回答 ​

Android14广播超时有什么需要注意的 ​

官方文档对前台优先级广播给出10到20秒、后台60到120秒的范围,受CPU饥饿等条件影响;仍应核查目标系统实现。

工作线程能导致ANR吗 ​

可以。主线程可能在等它持有的锁或结果,异步广播也可能因工作线程没完成而超时。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。