- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Activity状态保存
Activity两种状态保存方式
第一:onSaveInstanceState/onRestoreInstanceState,onCreate
系统回收当前Activity的时候会调用onSaveInstanceState方法。例如,你正在打游戏,突然有一个来了。这个时
候就会调用onSaveInstanceState。执行顺序onRestoreInstanceState---onResume---onSaveInstanceState
---onPause
第二:lifeCycle结合SharePreference来保存
对于Back键,Home键,横竖屏等操作,系统是不会调用onSaveInstanceState方法的。这个时候就需要使用
SharePreference来保存成XML文件来。
Android组件系列Activity保存状态
本篇随笔将详细的讲解Activity保存状态的概念,也就是savingactivitystate。
一、Activity状态保持概念
保存Activity的状态是非常重要的,例如我们在玩一个游戏的时候,突然来了一个,这个时候在接听完
我们返回到游戏中,这个时候我们希望游戏还是之前那个进度,或者说发生突发,游戏这个应用程序
被关闭了,这个时候我们如果再重新打开游戏的话,我们如果还是希望回到之前的进度,我们就需要将其状态保存
起来,这样在Activity的摧毁时,我们还能够根据保存的状态回到之前的进度。这就是Activity的状态保存。
二、两种方式的情况下Activity的状态会被保存
Activity的状态被保存通常有两种方式,我们首先通过android的文档提供的图来看一下这两种方式:
1.当一个Activity位于另一个Activity的前面时,也就是另一个Activity处于stop状态,这个时候这个Ac
tivity仍然占用着内存,并且保持着Activity的状态,如果此时点击后退按钮,那么此时第一个Activity又会重新
回到前台界面上,此时这个Activity会保持原来的状态,我们不需要重新获得其状态。
2.当我们的这个Activity处于stop状态在时,如果此时有一个优先级别更高的Activity需要获得资
源,此时系统可能会破坏处于stop状态的Activity,回收其内存,此时这个Activity对象会被destroyed,此时
如果须调用一个onSaveInstanceState()方法来保存我们的Activity的对象状态。
onSaveInstanceState(BundleoutState)这个方法接受一个Bundle类型参数,我们可以将我们需要保
存的状态通过Bundle的putString,putInt方法保存起来。
当我们的Activity处于极易被摧毁的时候,系统会调用onSaveInstanceState()方法,如果此时系统杀
死了这个Activity的线程,这个Activity对象被destroy后,再打开这个Activity时,又会重新创建这个Activit
y,这个时候系统会将onSaveInstanceState方法中的Bundle对象传递给Activity的onCreate()和onRe
storeInstanceState()方法,
使用这两个方法中的任何一个,我们都可以根据之前保存的Bundle对象来恢复我们Activity之前的状态。
三、onSaveInstanceState方法
protectedvoidonSaveInstanceState(BundleoutState)
下面我们具体看看这个方法,通过这个方法我们可以在一个Activity被杀死时,并在将来如果要重新创建这
个Activity时可以恢复其保存的状态。我们不需要疑惑这个方法和Activity生命周期函数方法的调用时期,例如o
nPaus
您可能关注的文档
- 【专家PPT】面向乡村配电系统保供电能力提升的自组网台区技术研究——武汉大学 尚磊.docx
- 医药生物行业原料药3月投资策略:维生素高位盘整,关注抗生素中间体.docx
- 中国女性汽车消费趋势报告(2024).docx
- 殷述康-多模态大语言模型领域进展分享.docx
- 中美AIGC产业商业化落地生态与发展趋势分析报告.docx
- 2024白酒行业社媒营销趋势报告.docx
- 中国房地产企业监测报告(2024年11月).docx
- 医药生物行业原料药11月投资策略:环保政策趋严,整体利好,关注维生素和抗生素中间体.docx
- 亚太实业(000691)农药中间体和医药中间体的研发、生产和销售企业.docx
- 人教版七年级下册数学全册新质教学课件(配2025年春改版教材).pptx
文档评论(0)