我在互联网上搜索了ANR是什么.我也研究了这些参考文献.但我没有得到有关Android崩溃的详细信息.
有人能告诉我ANR(Android没有响应)和Android崩溃之间的区别吗?
Boa*_*rdy 93
ANR代表甲 pplication Ñ OT ř esponding.
如果您在UI线程上运行进程需要很长时间(通常是大约5秒),则会发生ANR.在此期间,GUI(图形用户界面)将锁定,这将导致用户按下的任何内容都不会被操作.在大约发生5秒之后,如果线程仍未恢复,则会显示ANR对话框,通知用户应用程序没有响应,并且会让用户选择等待,希望应用程序能够最终恢复,或强制关闭应用程序.
崩溃是指应用程序中的异常被抛出但尚未处理.例如,如果您尝试设置EditText组件的文本,但是EditText为null并且没有try catch语句来捕获应用程序崩溃并将强制关闭的异常.用户不会看到导致崩溃的原因,他们将看到一个对话框,告诉他应用程序意外关闭了力量,并为他们提供发送错误报告的选项.在此示例中,如果您要查看错误报告,您将看到由此引起的错误java.lang.NullPointerException.
希望这可以帮助.
ANR和崩溃示例:
这个问题已经有了一个公认的答案,但是我添加了两个简单的例子来更好地理解ANR和Crash.
ANR:
// this will produce an ANR on your app
int i = 0;
while(true) {
i++;
}
Run Code Online (Sandbox Code Playgroud)
崩溃:
// this will crash your app : will produce java.lang.ArithmeticException
int value = 5, i = 0;
int result = value / i;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48188 次 |
| 最近记录: |