网站大量收购闲置独家精品文档,联系QQ:2885784924

说明activity状态保存.pdfVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

您可能关注的文档

文档评论(0)

158****9376 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档