【Android开发Wiki】入门篇生命周期的管理ManagingtheActivityLifecycle(四)重建ActivityRecreatinganActivity.pdfVIP
- 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开发Wiki】入门篇生命周期的管理ManagingtheActivityLifecycle(四)重建ActivityRecreatinganActivity,androidlifecycle,activitylifecycle,androidactivity,androidactivity跳转,android刷新activity,android启动activity,android关闭activity,android透明activity,androidactivity
eoe 移动开发者社区 /
原文链接:
/intl/zh-CN/training/basics/activity-lifecycle/recreating.html
Recreating an Activity
有几个情况下Activity 会由于正常的程序行为而被Destory,例如当用户点击返回按钮或
者是Activity 通过调用finish()发出了停止信号。系统也有可能会在Activity 处于stop
状态且长时间不被使用、或在前台Activity 需要更多系统资源的时候关闭后台进程以获取
更多的内存。
当Activity 是因为用户点击Back 按钮或者是Activity 通过调用finish()结束自己时,系
统就丢失了Activity 这个实例,因为前面的行为意味着不再需要这个Activity 了。然而,
如果因为系统资源紧张而导致Activity 被Destory, 用户回到这个Activity 时系统会有这
个Activity 存在过的记录,系统会使用那些保存的记录数据(描述了当Activity 被Desto
ry 时的状态)来重新创建一个新的Account 实例。那些被系统用来恢复之前状态而保存的
数据叫做instance state ,它是一些存放在Bundle 对象中的键 值对.
警告: Activity 会在每次旋转屏幕时被Destroy 与Recreate。当屏幕改变方向时,系统会
Destory 与Recreate 前台的Activity,因为屏幕配置被改变,相应的Activity 可能需要加
载一些可选的资源(例如layout).
默认情况下, 系统使用Bundle 实例来保存每一个视图对象中的信息(例如输入EditText 中
的文本内容)。因此,如果Activity 被Destroy 与Recreate, 那么layout 的状态信息会自
动恢复到之前的状态。然而,Activity 也许存在更多需要恢复的状态信息,例如记录用户
进程的成员变量。
为了可以保存额外更多的数据到saved instance state,在Activity 的声明周期里面需要
一个添加的回调函数onSaveInstanceState()。这个回调函数并没有在前面课程的图片示例
中显示。当用户离开Activity 时,系统会调用它。当调用这个函数时,系统会在Activity
被异常Destory 时传递Bundle 对象,从而可以增加额外的信息到Bundle 中并保存与系统中。
然后如果系统在Activity 被Destory 之后想重新创建这个Activity 实例时,之前的那个B
undle 对象会(系统)被传递到Activity 的onRestoreInstanceState()方法与onCreate()方
法中。
eoe 移动开发者社区 /
如图所示:当系统开始停止某个Activity 时会调用onSaveInstanceState()(1) ,因此可
以在Activity 实例需要重新创建的情况下, 指定特定的附加状态数据到Bundle 中。如果
这个Activity 被Destroy 而且同样的实例被重新创建,系统会传递在 (1) 中的状态数据到
onCreate() (2) 与onRestoreInstanceState() (3).
保存Activity 状态
当Activity 开始Stop 时,系统会调用onSaveInstanceState(),因此Activity 可以用键
值对的集合来保存状态信息。这个方法会默认保存Activity 视图的状态信息,例如在Edit
Text 组件中的文本或者是ListView 的滑动位置。 为了给Activity 保存额外的状态信息,
必须实现onSaveInstanceState()并增加键值对到Bundle 对象中,例如:
1. static final String STATE_SCORE = playerScore;
2. static final String STATE_LEVEL = playerLevel;
3. ...
4.
5. @Override
6. public void onSaveInstanceState (Bundle savedInstanceState) {
7.
您可能关注的文档
- 《新贤维思设计系列服装品牌设计专集》.pdf
- 《新概念》英语的学习方法完整版.pdf
- 《木材阻燃与防腐新技术新工艺及设备(机械)设计选型实务全书》.pdf
- 《最新最科学健美与营养的相关知识点》.pdf
- 《机械工程测试技术基础》(第三版.pdf
- 《机械振动基础》重点复习.pdf
- 《楚辞》《山海经》神话趋同的文化学意义纪晓建.pdf
- 《毛传》标兴在中国诗学史上的意义.pdf
- 《模拟外汇交易》实验报告.pdf
- 《水浒传》《西游记》《金瓶梅》主题的审美比较.pdf
- 【Android开发Wiki】入门篇生命周期的管理ManagingtheActivityLifecycle(二)暂停和恢复ActivityPausingandResuminganActivity.pdf
- 【Android开发Wiki】入门篇创建你的第一个android应用BuildingYourFirstApp(一)创建一个安卓工程CreatinganAndroidProject.pdf
- 【EI】液压机分配阀芯驱动凸轮升程曲线优化设计.pdf
- 【IOS】分享下近一年IOS开发的经验总结周海锋.pdf
- 【Revit教程】基于BIM的城市规划微环境生态模拟.pdf
- 【Revit教程】已有建筑的可持续性分析——应用AutodeskRevit.pdf
- 【Revit教程】施工驱动设计Revit与Naviswork.pdf
- 【Revit教程】幕墙深化设计和工程制造BIM的应用.pdf
- 【】单宁酸的化学性质及应用.pdf
- 【中医·辨证】咳嗽六经辨治初探.pdf
文档评论(0)