当前位置: 首页 > 知识库问答 >
问题:

为什么我要在android中重写onSavedInstanceState以检索实例状态?

郗俊能
2023-03-14

在创建(捆绑保存状态)中,已经有super.on创建(保存状态)。

API说它在销毁后创建活动时恢复状态。

但是我必须重写onSavedInstanceState(Bundle outState)以恢复特定的状态。

为什么?

什么类型的信息被保存在保存状态与方法oncreate()和onSavedInstanceState()?

我太糊涂了!

共有1个答案

盖夕
2023-03-14

默认情况下,当您的设备更改配置(例如,设备旋转、您更改了语言设置等)时,将重新创建前台活动,并且您的所有活动数据都将丢失。例如,如果您有一个成员变量mvvariable,该变量被分配了某个值,则在配置更改后,您将丢失其值。这就是为什么需要将重要数据保存到savedInstanceState并从onCreate()方法重新初始化它。只需检查savedInstanceState是否为null,如果是,则从savedInstance初始化值,否则使用默认值-init初始化。

进一步阅读:http://developer.android.com/training/basics/activity-lifecycle/recreating.html

 类似资料:
  • 问题内容: 请帮忙。将来自扫描仪的提示显示到控制台后,出现此错误: 问题是来自printf吗?我检查了格式,它看起来正确。 这是程序: 问题答案: 答:因为您的格式说明符与方法中使用的输入参数不匹配。 使用而不是将值用作格式说明符 另外需要额外的逃脱角色 最后,删除不必要的点字符 阅读:Formatter javadoc

  • 问题内容: 伙计们,请让我知道,在现实世界中,为什么我们需要重写equals和hashcode而不能使用Object的equals和hashcode。 问题答案: 对象的equals / hashcode实现很好-如果您希望“引用身份”作为相等性。换句话说,一个对象总是会比较等于自己,但不同于另一个对象。 但是,如果希望两个不同的对象相等,则必须重写该方法以 说明 它们应 如何 相等(然后重写哈希

  • 引用文档: 创建索引时,与键关联的数字指定索引的方向,因此它应该始终为1(升序)或-1(降序)。对于单键索引或随机访问检索,方向无关紧要,但如果您对复合索引进行排序或范围查询,方向很重要。 然而,我看不出为什么指数的方向对复合指数有什么影响。有人能提供进一步的解释(或示例)吗?

  • 问题内容: 我将ReactJs与Redux一起使用,在一些教程和代码上,我看到人们建议并使用normalizr 保持状态平坦 。但是,保持平坦的真正优势是什么?如果没有,我会遇到任何问题吗?有必要吗 ? 问题答案: 三个主要原因: 不变地更新嵌套的Javascript对象通常会导致难以维护的丑陋代码,除非您使用实用程序库来打包过程 不变地更新嵌套数据要求您返回嵌套层次结构中所有项目的新副本。由于组

  • 问题内容: 我正在努力了解为什么在Java中 需要方法重载和重写 ? 我已经阅读了一些与此相关的文章,但无法理解为什么实际上需要它? 我还访问了以下url,但在该主题中我还不清楚。 Java重载和覆盖 任何实际的例子将不胜感激。 提前致谢。 问题答案: 来自doc的 方法重载: 假设您有一个可以使用书法绘制各种类型的数据(字符串,整数等)的类,并且包含一个用于绘制每种数据类型的方法。为每个方法使用

  • 本文向大家介绍请你解释为什么重写equals还要重写hashcode?相关面试题,主要包含被问及请你解释为什么重写equals还要重写hashcode?时的应答技巧和注意事项,需要的朋友参考一下 考点:java基础 HashMap中,如果要比较key是否相等,要同时使用这两个函数!因为自定义的类的hashcode()方法继承于Object类,其hashcode码为默认的内存地址,这样即便有相同含义