【问题标题】:What is the different between to reinitialize data of Activity in onCreate() and onRestoreInstanceState() in Android在 Android 的 onCreate() 和 onRestoreInstanceState() 中重新初始化 Activity 的数据有什么区别
【发布时间】:2014-12-07 05:24:21
【问题描述】:

在onCreate()和onRestoreInstanceState()中重新初始化Activity的数据有什么区别

我在 oncreate aslo 中得到了 bundle。所以我的问题是为什么我不能在 oncreate 方法中设置数据,而在 onRestoreInstantstate 中完成了同样的事情。那么在 oncreate 中 bundle 对象的用途是什么我经历了不同教程但没有得到相关答案,所以请如果有人知道我们在哪里使用实现来重新初始化活动数据的区别,它应该在 onCreate 还是 onRestoreInstanceState ...... ..请告诉我

【问题讨论】:

标签: android


【解决方案1】:

@numan salati 说:

onRestoreInstanceState 是多余的,因为您可以在 onCreate 中轻松恢复状态。

话虽如此,这就是官方文档所说的 onRestoreInstanceState:

大多数实现将简单地使用 onCreate(Bundle) 来恢复它们的 状态,但有时在这里做这件事很方便,毕竟 初始化已经完成或允许子类决定是否 使用您的默认实现。

因此,为了获得最佳实践,请在 onCreate 和 在 onRestoreInstanceState 中恢复之前的状态。如果你这样做, 任何将您的 Activity 子类化的人都可以选择覆盖您的 onRestoreInstanceState 来增加或替换您的恢复状态逻辑。 这是一个很长的说法 onRestoreInstanceState 充当 模板方法。

Here

【讨论】:

  • 您好,感谢您的回答,但我是 Android 新手所以请告诉我“允许子类决定是否使用您的默认实现”究竟是什么意思。
  • 默认实现是基于 Oncreate bundle 创建活动。如果你想覆盖这个行为来改变任何状态,你可以在你自己的 onRestoreInstanceState 暗示中做到这一点
猜你喜欢
  • 1970-01-01
  • 2011-11-19
  • 2011-01-20
  • 2011-10-17
  • 1970-01-01
  • 2013-01-13
  • 2017-03-23
  • 2020-07-18
  • 2017-08-27
相关资源
最近更新 更多