ANR----以及如何定位是前端问题还是后台问题?

1.ANR

在baiAndroid上,如果你的应用程序有一段时du间响应不够灵敏zhi,系统会向用户显示一个对话框,dao这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样系统不会显示ANR给用户。默认情况下,在android中Activity的最长执行时间是5秒,BroadcastReceiver的最长执行时间则是10秒。

一般来说,在应用程序里,100到200ms是用户能感知阻滞的时间阈值。因此,这里有一些额外的技巧来避免ANR,并有助于让你的应用程序看起来有响应性。

如果你的应用程序为响应用户输入正在后台工作的话,可以显示工作的进度(ProgressBar和ProgressDialog对这种情况来说很有用)。

特别是游戏,在子线程里做移动的计算。
如果你的应用程序有一个耗时的初始化过程的话,考虑可以显示一个Splash Screen或者快速显示主画面并异步来填充这些信息。在这两种情况下,你都应该显示正在进行的进度,以免用户认为应用程序被冻结了。

2.以及如何定位是前端问题还是后台问题?

第一步bai先去数据库里查,看我们做数据查询操作du时数据库里对应zhi数据是对是错,如果说数据库中都出dao错了,那可能就是数据本身的问题,就要进一步看存数据时哪里出错;

如果数据库里是对的,那第二步就要抓包,查看抓包响应里返回的结果是不是正确,如果正确,那就是前端页面出错.

如果返回的结果是错的,那就要分两种情况来看,第一种是前端发送的请求是否正确(有可能是函数错误或者请求参数错了),如果错误那就是前端问题,如果正确,那就是后端处理问题

原文地址:https://www.cnblogs.com/WYY-Lang/p/14059305.html