ANR异常
2016-03-08 01:17
169 查看
什么是ANR,以及如何避免它
ANR:Application Not Responding 应用程序无响应。
android系统中处理用户操作的工作时在主线程中执行的,如果我们的程序在主线程中进行一些耗时的操作,导致用户的操作6秒不能够处理,就会出现异常。 不同的组件发生 ANR 的时间不一样,主线程(Activity、Service)是 5 秒,BroadCastReceiver 是 10 秒。 弹出的对话框用户可以选择让程序继续运行,但是,他们在使用你的应用程序时,并不希望每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样,系统不会显示ANR 给用户。
如何避免ANR异常
将所有耗时操作,比如访问网络,Socket 通信,查询大量 SQL 语句,复杂逻辑计算等都放在子线程中去,然后通过 handler.sendMessage、runonUITread、AsyncTask 等方式更新 UI。无论如何都要确保用户界面操作的流畅度。 如果耗时操作需要让用户等待,那么可以在界面上显示进度条。
相关文章推荐
- java关键字
- centos 7 菜鸟第一天 双启动
- 蓝桥杯--闰年判断&&01字串
- 设置custom debug keystore
- 解决Qualcomm Atheros AR8161 Gigabit Ethernet网卡Linux下坏掉的问题
- js与webView的简单交互
- Android Sqlite查询优化之一---运用索引
- 蓝桥杯-特殊回文数&&特殊的数字
- 【android】软键盘 - 仿 qq/微信 聊天界面布局
- Spring 4.2.5 + Hibernate 4.3.11 + JPA + tomcat 集成
- java基础 读取XML文件数据
- MyBatis动态SQL之一使用 if 标签和 choose标签
- [Matlab+C/C++] 读写二进制文件
- [Matlab+C/C++] 读写二进制文件
- Android应用开发基础之十:多媒体编程
- jquery deferred promise
- Codeforces 625B War of the Corporations (字符串匹配题目)
- php调试——输出变量值
- hash+链表
- Spring高级事务管理难点剖析