它用于服务、活动、片段等。它是否只发生在UI线程中某些重操作的情况下?
也只是想知道-这些组件的哪种方法可以抛出/上升ANR?
发布于 2016-07-01 17:41:15
在Android系统中,系统会显示一个对话框,显示你的应用程序已经停止响应,从而防止在一段时间内响应不足的应用程序。此时,您的应用程序已经有相当一段时间没有响应了,因此系统为用户提供了退出应用程序的选项。 通常,如果应用程序无法响应用户输入,系统将显示ANR。例如,如果应用程序阻塞UI线程上的某些I/O操作(通常是网络访问),则系统无法处理传入的用户输入事件。或者,应用程序花了太多的时间来构建一个复杂的内存结构,或者在UI线程上计算游戏中的下一步。确保这些计算是有效的总是很重要的,但是即使是最有效的代码也需要时间来运行。 在Android中,应用程序响应由Activity和Window Manager系统服务监视。当Android检测到以下条件之一时,它将显示特定应用程序的ANR对话框:在5秒内没有对输入事件(例如按键或屏幕触摸事件)的响应。一个BroadcastReceiver还没有在10秒内完成执行。
挑选出与你的问题相关的部分。但是要了解更多信息,请查看我从哪里得到这个的android文档。
ANR通常发生在您运行长时间运行的操作时(例如。(网络)在主线程上。
https://stackoverflow.com/questions/38151066
复制相似问题