ANR异常
来源:互联网 发布:three.js dae 顶点数 编辑:程序博客网 时间:2024/06/04 18:47
ANR异常
一:什么是ANR
ANR:Application Not Responding,即应用无响应
二:ANR的类型
ANR一般有三种类型:
1:KeyDispatchTimeout(5 seconds) –主要类型
按键或触摸事件在特定时间内无响应
2:BroadcastTimeout(10 seconds)
BroadcastReceiver在特定时间内无法处理完成
3:ServiceTimeout(20 seconds) –小概率类型
Service在特定的时间内无法处理完成
三:KeyDispatchTimeout
Akey or touch event was not dispatched within the specified
time(按键或触摸事件在特定时间内无响应)
具体的超时时间的定义在framework下的
ActivityManagerService.Java
//How long we wait until we timeout on key dispatching.
staticfinal int KEY_DISPATCHING_TIMEOUT = 5*1000
四:为什么会超时呢?
超时时间的计数一般是从按键分发给app开始。超时的原因一般有两种:
(1)当前的事件没有机会得到处理(即UI线程正在处理前一个事件,没有及时的完成或者looper被某种原因阻塞住了)
(2)当前的事件正在处理,但没有及时完成
五:如何避免KeyDispatchTimeout
1:UI线程尽量只做跟UI相关的工作
2:耗时的工作(比如数据库操作,I/O,连接网络或者别的有可能阻碍UI线程的操作)把它放入单独的线程处理
3:尽量用Handler来处理UIthread和别的thread之间的交互
六:UI线程
说了那么多的UI线程,那么哪些属于UI线程呢?
UI线程主要包括如下:
1.Activity:onCreate(), onResume(), onDestroy(), onKeyDown(),
onClick(),etc
2.AsyncTask: onPreExecute(), onProgressUpdate(),
onPostExecute(), onCancel,etc
3. Mainthread handler: handleMessage(), post*(runnable r), etc
4. other
- ANR异常
- ANR异常
- ANR异常
- ANR异常
- Android anr异常测试
- Android ANR异常
- android ANR异常解决方法
- android-ANR异常处理
- android ANR异常
- Android中的ANR异常
- 王学岗ANR异常
- android常见异常(ANR)
- android中的ANR异常
- ANR异常知识点
- Android ANR异常及解决方法
- Android ANR异常及解决方法
- Android ANR异常及解决方法
- Android ANR异常及解决方法
- 20170807学习总结-selenium获取列表内容
- 远程链接Linux服务器
- Seven-Segment Display
- unity开发 --------- NGUI(Localization、UILocalize)
- github 本地上传
- ANR异常
- JavaScript实现页面到滚动到指定位置执行某些操作
- 接口测试之Postman简介
- 关于烂代码的那些事(上)
- msys2 安装笔记
- thinkphp 中GROUP BY功能
- Mybatis源码解析-MapperRegistry注册mapper接口
- TI—CC3200【5】关于TLV320AIC3254的hp和lo输出“沙沙”声的问题
- C# 获取汉语拼音全码及简码