- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android教程精华-摘要-开发-面试-免费
ANDROID 复习摘要
1、什么是 ANR 如何避免它?
ANR定义
在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择让程序继续运行,但是,他们在使用你的应用程序时,并不希望每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样,系统不会显示ANR给用户。
如何避免:
考虑上面的ANR定义,让我们来研究一下为什么它会在Android应用程序里发生和如何最佳构建应用程序来避免ANR。
Android应用程序通常是运行在一个单独的线程(例如,main)里。这意味着你的应用程序所做的事情如果在主线程里占用了太长的时间的话,就会引发ANR对话框,因为你的应用程序并没有给自己机会来处理输入事件或者Intent广播。因此,运行在主线程里的任何方法都尽可能少做事情。特别是,Activity应该在它的关键生命周期方法(如onCreate()和onResume())里尽可能少的去做创建操作。潜在的耗时操作,例如网络或数据库操作,或者高耗时的计算如改变位图尺寸,应该在子线程里(或者以数据库操作为例,通过异步请求的方式)来完成。然而,不是说你的主线程阻塞在那里等待子线程的完成——也不是调用Thread.wait()或是Thread.sleep()。替代的方法是,主线程应该为子线程提供一个Handler,以便完成时能够提交给主线程。以这种方式设计你的应用程序,将能保证你的主线程保持对输入的响应性并能避免由于5秒输入事件的超时引发的ANR对话框。这种做法应该在其它显示UI的线程里效仿,因为它们都受相同的超时影响。
IntentReceiver执行时间的特殊限制意味着它应该做:在后台里做小的、琐碎的工作如保存设定或者注册一个Notification。和在主线程里调用的其它方法一样,应用程序应该避免在BroadcastReceiver里做耗时的操作或计算。但不再是在子线程里做这些任务(因为BroadcastReceiver的生命周期短),替代的是,如果响应Intent广播需要执行一个耗时的动作的话,应用程序应该启动一个
Service。顺便提及一句,你也应该避免在Intent Receiver里启动一个Activity
,因为它会创建一个新的画面,并从当前用户正在运行的程序上抢夺焦点。如果
你的应用程序在响应Intent广播时需要向用户展示什么,你应该使用
Notification Manager来实现。
一般来说,在应用程序里,100到200ms是用户能感知阻滞的时间阈值。因此,这
里有一些额外的技巧来避免ANR,并有助于让你的应用程序看起来有响应性。
如果你的应用程序为响应用户输入正在后台工作的话,可以显示工作的进度
(ProgressBar和ProgressDialog对这种情况来说很有用)。
特别是游戏,在子线程里做移动的计算。
若你的应用程序有一个耗时的初始化过程的话,考虑可以显示一个Splash
Screen或者快速显示主画面并异步来填充这些信息。在这两种情况下,你都应该
显示正在进行的进度,以免用户认为应用程序被冻结了。
本文来自CSDN博客,转载请标明出处:
/Zengyangtech/archive/2010/11/21/6025671.aspx
2、什么情况会导致Force Close?如何避免?能否捕获导致其的异常?
3、Android本身的api并未声明会抛出异常,则其在运行时有无可能抛出runtime
异常,你遇到过吗?诺有的话会导致什么问题?如何解决?
4、简要解释一下activity、 intent 、intent filter、service、Broadcast、
BroadcaseReceiver
Activity
Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之
中,Activity具有自己的生命周期(由系统控制生命周期,程序无法改变,但可
以用onSaveInstanceState保存其状态)。
对于Activity,关键是其生命周期的把握(如那张经典的生命周期图=.=),其
次就是状态的保存和恢复(onSaveInstanceState onRestoreInstanceState),
以及Activity之间的跳转和数据传输(intent)。
Activity中常用的函数有SetContentView() findViewById() finish()
startActivity(),其生命周期涉及的函数有:
void onCreate(Bundle
您可能关注的文档
- 6年级上册知识归纳.doc
- 6学生选课管理统毕业论文.doc
- 6章+分式》贵市市单元检测题(二).doc
- 6种做法破坏宝注意力.docx
- 6钻孔灌注桩施作业指导书1.doc
- 7 9种CAD问题解决办法你问我答 - AutoCAD.doc
- 7 多收了三五【苏教版】【名师教案】3N.doc
- 7 第七章合金相图.doc
- 7-2-3向量综合练习(李君浩).doc
- 71155论文泰雷-闫杰—土地收储出让对经济的影响—以埇桥区为例.doc
- 2025广州银行外访催收团队专题招聘历年试题汇编及答案解析(夺冠).docx
- 2025年国考申论高分技巧实战卷.docx
- 2025年国考网络技术封闭进阶模拟试卷.docx
- 事业单位职测全真模拟卷:事业单位考试备考复习计划.docx
- 2025年省考行测申论写作冲刺试卷.docx
- 2025河北秦皇岛县(区)总工会工会招聘社工工作人员16人参考题库及答案解析(夺冠).docx
- 2025河南南阳市康复医院(第九人民医院)南阳市中心医院紧密型医联体医院人才招聘27人笔试题库带答案.docx
- 2025第二批次贵州安顺市重点人才“蓄水池” 需求岗位专项简化程序招聘7人笔试参考题库带答案解析.docx
- 2025广东南粤银行珠海分行招聘历年题库带答案解析.docx
- 2025河北承德市公安局公开招聘警务辅助人员70名历年真题题库带答案解析.docx
最近下载
- 洱海.ppt.ppt VIP
- (高清版)DB14∕T 1736-2024 医疗护理员服务规范.pdf VIP
- 06J403-1楼梯栏杆选型.pdf VIP
- 历年全国初中应用物理知识竞赛.pdf VIP
- 贵州学法考试题库及答案.docx VIP
- 〖文〗第16课《白杨礼赞》课件+2025-2026学年统编版语文八年级上册.pptx VIP
- 沪教版【word直接打印】小学六年级数学奥数测试题及答案 .pdf VIP
- 盲沟施工方案.docx VIP
- 超星学习通意义生活:符号学导论(四川大学)学习通测试及答案.doc VIP
- 雅马哈RX-V573_V473_Manual_Chinese说明书中文版文献.pdf
原创力文档


文档评论(0)