首页 > 试题广场 >

什么是ANR和Force Close?如何避免?

[问答题]
什么是ANR和Force Close?如何避免?
推荐

ANR: Application Not Responding

产生原因:

1.主线程(UI线程)响应用户操作事件时间超过5

2.BroadcastReceiver超过10秒钟任未执行完毕。

避免方法:

Android应用程序完全运行在一个独立的线程中。任何在主线程中运行的,需要消耗大量时间的操作都会引发ANR。因此,需要消耗大量时间的操作如访问网络和数据库,都要放到子线程中或者使用异步方式来完成。


Force Close.

产生原因:

程序出现异常,一般像空指针、数组越界、类型转换异常等。

避免方法:

编写程序时要思维缜密,异常出现时可以通过logcat查看抛出异常代码出现的位置,然后到程序中进行修改。

编辑于 2017-05-22 14:58:55 回复(0)
ANR 的缩写是Application not Respond 应用程序无响应,force close 一般是因为出现异常导致程序崩溃出现force close 这种情况只能是自己将自己的应用程序变得更加健壮,使自己的应用程序捕获到这些异常并且加以处理而不是直接崩溃。
发表于 2017-01-25 17:18:53 回复(0)
ANR:application not responding
当对输入事件(如按键、触摸屏事件)的响应超过5秒、意图接收者(intentReceiver)超过10秒钟仍未执行完毕时都会报ANR。
Android应用程序完全运行在一个独立的线程中。任何在主线程中运行的,需要消耗大量时间的操作都会引发ANR。因此,需要消耗大量时间的操作访问网络和数据库都要放到子线程中或者使用异步请求

Force Close:
一般像空指针数组越界类型转换异常等。可以通过logcat查看抛出异常的代码出现的位置,然后到程序对应代码中进行修改。
发表于 2017-09-06 21:04:12 回复(0)