Android开发中ANR详解及解决办法
来源:互联网 发布:这是我的战争 知乎 编辑:程序博客网 时间:2024/05/22 17:34
ANR -- Application Not Responding 应用程序未响应。
默认情况下,在Android中Activity的最长执行时间是5s,Broadcast Receiver则是10s
一、ANR引发原因
在Android中,应用程序的响应事件是由 Activity Manager 和 WindowManager 系统服务监视的 。
当它监测到以下情况中的一个时,Android就会针对特定的应用程序跳出ANR对话框:
1. 输入事件在5s内没有得到响应
2. Broadcast Receiver在10s内没有执行完毕
一般来说,造成以上两种情况的原因很多,例如:在UI线程中进行了很耗时的操作(下载,IO异常等)
再比如:
网络交互或数据库操作
很耗时的逻辑运算
这些操作本该在子线程中、以异步请求的方式来完成。
因此,解决办法是:
主线程应为子线程提供一个Handler机制,完成时能返回至主线程。
二、避免ANR
1. UI线程中尽量少做一些耗时的事情,特别是在Activity的onCreate()和onResume()方法中。
2.如果响应Intent广播需要执行一个耗时的动作的话,应用程序应该启动一个后台Service。
3.避免在Intent Receiver中启动一个Activity,因为它会创建一个新的界面,并从当前运行界面上抢夺焦点。
如果需要在响应Intent广播时与用户交互的话,应该使用Notification Manager来实现。
0 1
- Android开发中ANR详解及解决办法
- Android开发中ANR问题出现及解决
- Android开发中ANR问题出现及解决
- android anr本质分析及解决办法
- Android ANR产生原因及解决办法
- android开发之详解ANR与OOM
- android中遇到 ANR问题及解决
- Android开发中ANR的处理
- Android 开发中遇到的 Exception & ANR
- Android重点知识(四)ANR异常及解决办法
- android ANR产生情况、发生原因及解决办法
- Android中ANR的产生原因和解决办法
- Android中什么是ANR?产生的原因,解决办法
- Android中ANR的产生原因和解决办法
- Android - ANR详解
- Android ANR 详解
- Android的ANR详解
- Android ANR详解
- mongodb中批量将时间戳转变通用日期格式
- Wince的界面切换体系——用户控件的合理使用
- 财产保险的分类
- Java日期表示
- 世界顶级软件推荐,个人亲测
- Android开发中ANR详解及解决办法
- ADC采样Q15归一化处理
- Javascript正则表达式常用的字符和符号
- 例题5-6 UVA 540 Team Queue团体队列
- Leetcode204: N-Queens II
- 蓝桥杯 数字三角形 Java代码
- 简单地响应式布局----CSS3中的Media Query(媒介查询)
- 数据结构基础(C语言版)(朱仲涛翻译)代码学习 第一章002
- 无向图中三角形个数