- 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程序
防止数据丢失
不要使用裸露的数据
不要打断正在说话的用户
使用线程
避免Activity Screen杀手
主题扩展
Android开发教程之防止数据丢失
脑海里面要时刻保持这样一种看法:Android是一个移动的平台。这很明显,但是你也要注意:任何Activity(例如有人给你打电话)在你运行自己Activity的时候都有可能会突然弹出来,这将会调用onSaveInstanceState() 和onPause()方法,很有可能你的进程会终止(kill)。
如果用户正在编辑数据的时候,其他的Activity出现了,你的程序可能因为被终止而丢失一些数据。当然如果你事先保存了就不会丢失。Android的编程思路也是这样做的:那些接受或编辑输入的Android程序应该重载onSaveInstanceState()方法,把程序的当前状态保存下来。当第二次访问该程序的时候,就会使数据复原。
一个使用这的经典例子就是邮件程序。如果用户正在编辑一个信件,这个时候宁外一个Activity出现了,那么程序应该自动的把当前邮件保存到草稿本中。
Android开发教程之不要使用裸露的数据
你是不能穿着内裤在街上裸奔的,那么你的数据也同样是这样。你的程序有些东西是可能被其他程序访问的,那么这样做就不是很专业了。其他的程序很有可能看不懂那些暴露的原始数据,如果你可以改变数据形式,你的程序就会在这点上比那些不会升级的程序好得多。
Android的处理方法是:创建一个ContentProvider通过一个干净的深思熟虑的可维护的API把你的程序数据暴露给其他应用程序。使用一个ContentProvider就好象嵌入了一个Java的接口到两片代码之间,让它们能够相互交流。这意味着,你可以改变你内部的形式而不用修改ContentProvider暴露的接口,并且这不会影响应用程序的执行。
Android开发教程之不要打断正在说话的用户
如果你的用户正在运行一个程序(例如正在打电话),他肯定不要其他程序干扰。除了需要从当前Activity获得用户输入的Activity外,这就是为什么你应该避免缠身不恰当的Activity。
这就是说,不要从运行在后台的BroadcastReceivers或 Services中调用startActivity() ,这样做会打断任何当前运行的应用程序,就会使用户很不舒服。或许更糟糕的,你的Activity变成了一个“键盘强盗”,它会把一些用户原本准备给前一个Activity的输入截取过来。取决于你的应用程序做了些什么,反正这一般都不是一个好事情。
我们这里没有直接从后台运行Activity,而是使用NotificationManager去设置通告消息。这将会在状态栏中显示,用户有空时就会在能够点击它,看看程序要什么什么东西。
(注意:当你的Activity已经运行在前台,而用户想把当前输入给下一个Activity时,这种方法就不适用了。)
Android开发教程之使用线程
如果你的应用程序有一些代价很大或者需要长时间运行的处理过程时,你应该把它们移到线程里面。这样就避免了弹出ANR对话框,让你的程序能够顺畅的运行。
一般来说,Activity中的所有代码和所有的View类都是运行在相同的线程下面。同时这个线程也会处理用户的输入。例如,用户按下一个按钮,一个按钮消息就会添加到Activity的主线程的消息列表中。这个事件消息需要从列表速度的提取出来处理,如果没有速度的处理掉,几秒钟之后,系统就会认为该应用程序挂起了,就会开始结束进程。
如果你有长时间运行的代码嵌入到你的Activity中,那么在事前处理的过程中会运行该代码,这样就会使事件处理阻塞,这样延缓了你的输入进程,并且导致ANR的产生。为了避免这些,将你的运算放入一个线程里面。
Android开发教程之避免Activity Screen杀手
任何有用的应用程序都会有几个不同的Screen对象。当切换你的用户界面是,确保你可以不受限制的使用Activity。
取决于你的开发背景,你可能认为Activity和Java Applet一样,在那里面它是你的程序入口。即使是这样,但这还不够准确:Applet的子类是Java Applet的唯一程序入口,而Activity只是一个潜在的程序入口之一。主Activity和其他Activity之间唯一的不同就是:在你的Android配置的XML文档中,主Activity有android.intent.action.MAIN 这样一项。
因此当你设计你的程序时,把你的程序当做是几个Activity的联合。这样会使你的代码在长期的运行中更容易维护,并且,通过利用Android程序的历史记录和 b
您可能关注的文档
最近下载
- 2025年教学查房——高血压.pptx VIP
- 山西省2026届高三第一次八省联考语文(T8联考)(含答案).pdf VIP
- 2026五个带头发言材料三.docx VIP
- 新能源汽车行业产业人才需求分析报告.docx
- 广西急难型、支出型临时救助审核认定表、申请社会救助家庭经济状况核对授权书、告知书、领取表.docx VIP
- 一年级上册语文期末复习-看拼音写词语4_苏教版.doc VIP
- 2026年成都农商银行软件开发岗(应用架构方向)社会招聘10人备考题库(含答案详解).docx VIP
- 培智生活数学五年级上册教案人民教育出版社.pdf VIP
- 2025北京海淀初一(上)期末生物(含答案).pdf VIP
- 天坛的介绍课件.pptx VIP
原创力文档


文档评论(0)