Android平台如何检测ANR问题?

Android平台如何检测ANR问题?,android,android-anr-dialog,Android,Android Anr Dialog,当Android应用程序没有响应时,会弹出一个ANR对话框。我的问题是:Android平台如何检测ANR并决定启动这样一个弹出对话框。这取决于UI线程以及UI线程返回消息循环所需的时间(作为应用程序开发人员,消息循环对您是隐藏的,但是在您的UI线程上有一个巨大的循环,它接收用户输入、绘制请求、异步任务完成等消息)。基本上,在每条消息声明ANR之前,您有固定的时间。等待消息的睡眠时间永远不会导致ANR。Android中有一个单独的看门狗进程,它会检查线程上次到达循环顶部的时间有多长,如果太长,它会

当Android应用程序没有响应时,会弹出一个ANR对话框。我的问题是:Android平台如何检测ANR并决定启动这样一个弹出对话框。

这取决于UI线程以及UI线程返回消息循环所需的时间(作为应用程序开发人员,消息循环对您是隐藏的,但是在您的UI线程上有一个巨大的循环,它接收用户输入、绘制请求、异步任务完成等消息)。基本上,在每条消息声明ANR之前,您有固定的时间。等待消息的睡眠时间永远不会导致ANR。Android中有一个单独的看门狗进程,它会检查线程上次到达循环顶部的时间有多长,如果太长,它会杀死它并显示ANR对话框。

From,u在子标题“什么触发ANR?”:“通常,如果应用程序无法响应用户输入,系统将显示ANR。例如,如果应用程序阻止UI线程上的某些I/O操作(通常是网络访问),因此系统无法处理传入的用户输入事件。”除此之外,我相信Android会运行5秒的输入事件超时,之后会显示ANR