外观
如何理解ANR 类型与超时边界?
标准回答
不是。输入分发超时常见默认阈值为5秒,还包括无焦点窗口、广播处理、服务执行等不同类型;具体门槛与Android版本和OEM实现有关。
例如广播goAsync后仍有完成期限,工作线程任务结束后需要及时调用PendingResult.finish;进程冷启动也可能占用广播时限。不能把所有广播固定背成同一个10秒,也不能把所有服务相关超时当成相同的ANR机制。
先读ANR reason/subject,确定触发组件、起止时间及相关线程,再结合栈、CPU和Trace追踪等待链。主线程当下空闲不代表超时发生时空闲。
追问与回答
Android14广播超时有什么需要注意的
官方文档对前台优先级广播给出10到20秒、后台60到120秒的范围,受CPU饥饿等条件影响;仍应核查目标系统实现。
工作线程能导致ANR吗
可以。主线程可能在等它持有的锁或结果,异步广播也可能因工作线程没完成而超时。
参考资料
内容来源
- Android 与 AI 工程 Wiki · 原条目
q050