首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onSaveInstanceState和finish()

onSaveInstanceState和finish()
EN

Stack Overflow用户
提问于 2016-04-25 12:46:25
回答 1查看 1.4K关注 0票数 6

简短的问题:是否可以使用onSaveInstanceState()方法保存数据,然后在活动的下一次开始时调用finish()以获得savedInstanceState中的数据?或者活动的finish()意味着数据已经消失了?

如果第一个答案是正确的,那么我的实现中会出现一些问题,因为虽然保存了数据,但我还是在onCreate()中获得了onCreate()。如果第二个答案是正确的,我将不得不重新思考如何将我的活动联系在一起:o)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-25 12:48:51

是否可以使用onSaveInstanceState()方法保存数据,然后对活动调用finish(),并在活动的下一个开始时调用finish()以获得savedInstanceState中的数据?

不是的。

或者活动的finish()是否意味着数据已经消失?

是。保存的实例状态Bundle用于这样的情况:从用户的角度来看,您的活动仍然存在,但是由于技术原因它正在被销毁:

  • 配置更改(例如屏幕旋转)
  • 进程终止(用户返回应用程序的速度相当快)

如果出于其他原因调用finish() --直接调用它、用户按回键等等--则不再需要保存的实例状态,可以丢弃。

因此,保存的实例状态Bundle用于临时数据,您希望保留这些数据,但在面临配置更改和进程终止(如部分填充表单的内容)时,您很容易丢失这些数据。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36841033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档