Android ANR
ANR:Application Not Responding,即应用无响应ANR一般有三种类型:
1. KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应
2. BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成
3. ServiceTimeout(20 seconds) --小概率类型 Service在特定的时间内无法处理完成
超时时间的计数一般是从按键分发给app开始。超时的原因一般有两种:
(1)当前的事件没有机会得到处理(即UI线程正在处理前一个事件,没有及时的完成或者looper被某种原因阻塞住了)
(2)当前的事件正在处理,但没有及时完成
1. UI线程尽量只做跟UI相关的工作
2. 耗时的工作(比如数据库操作,I/O,连接网络或者别的有可能阻碍UI线程的操作)把它放入单独的线程处理
3. 尽量用Handler来处理UIthread和别的thread之间的交互说了那么多的UI线程,那么哪些属于UI线程呢?
UI线程主要包括如下:
1. Activity:onCreate(), onResume(), onDestroy(), onKeyDown(), onClick(),etc
2. AsyncTask: onPreExec
您可能关注的文档
最近下载
- (物理试题)2023年厦门大学附属科技中学招生考试.pdf VIP
- 2024高考(新课标1卷)英语真题词汇汇总+练习(学生版+解析版).docx
- 杭州第九届天堂儿歌演唱和创作大赛.doc VIP
- (完整版)CNC84操作手册.pdf VIP
- 幼儿园家长沟通与信息发布模板.docx VIP
- 小学生认识身体主题课件.pptx VIP
- 均值极差控制图Xbar-R Chart.xls VIP
- 2025年度国家广播电视总局直属事业单位公开招聘310人笔试试题附答案解析.docx VIP
- 机器人运动控制:运动学与动力学建模_(16).机器人动力学仿真.docx VIP
- 广东省初中学业水平考试英语模拟卷(一).pdf VIP
原创力文档

文档评论(0)