界面卡顿一般都是ANR,一般用adb logcat不会抓取到相关的log。
ANR表示“应用程序无响应”,这个是需要我们避免发生的事情,出现这个异常的原因:
1.主线程 (“事件处理线程” / “UI线程”) 在5秒内没有响应输入事件;
2.BroadcastReceiver在10秒内没有执行完毕。
app
导致ANR的原因
UI线程做了耗时的操作,例如”网络请求”、大量数据库操作,比如app上批量下载。
如何避免
1.UI线程只做界面刷新,不做任何耗时操作,耗时操作放在子线程来做;
2.可以使用Thread+handle或者AsyncTask来进行逻辑处理。
第一条是非常重要的。
网友评论