首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用onSaveInstanceState

如何使用onSaveInstanceState
EN

Stack Overflow用户
提问于 2013-12-20 09:42:21
回答 4查看 895关注 0票数 4

我覆盖下面的onSaveInstanceState函数

代码语言:javascript
复制
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
   super.onSaveInstanceState(savedInstanceState);
}

我有个问题。如果我省略了 **super.onSaveInstanceState(savedInstanceState)**,那么这个函数会是这样的吗?

代码语言:javascript
复制
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
   //super.onSaveInstanceState(savedInstanceState);
}

我希望你能更详细地解释我

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-12-20 09:51:58

如果您忽略了这样做(调用超级实现),那么您必须找到一种保存数据的方法(这将包括一种允许检查是否保存了状态的机制)。

super.onSaveInstanceState(Bundle);方法编写包及其在相关对象中包含的所有内容,以便(片段的)活动可以在它的onCreate(Bundle)方法中访问。这是一些信息这里

但是请注意,这种类型的保存数据不是持久的。如果移除堆栈的活动,则状态也将丢失。正如@CapDroid所提到的,在暂停活动之前,会调用此方法。

编辑我还建议您阅读活动文档中的过程生命周期段落。

票数 2
EN

Stack Overflow用户

发布于 2013-12-20 09:49:07

onSaveInstanceState(Bundle savedInstanceState)是在您的活动以pause模式进行之前调用。我们可以将任何信息存储在包中,这样我们就可以从包中获得信息,在某些情况下,比如方位变化。

下面是如何使用onSaveInstanceState的简单示例

代码语言:javascript
复制
@Override
public void onSaveInstanceState(Bundle outState) {

   outState.putString("message", "This is my message to be reloaded");
   super.onSaveInstanceState(outState);
}

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  if( savedInstanceState != null ) {
     Toast.makeText(this, savedInstanceState .getString("message"), Toast.LENGTH_LONG).show();
  }
}

注意:总是调用超类,以便保存视图层次结构状态。

如果不调用super.onSaveInstanceState(outState);,则默认方法将不会调用。因此,当您的设备内存不足,活动将被破坏时,您可能会丢失您的数据。当它再次出现在OnCreate中时,您的全部视图将再次创建。

有关更多信息,单击此处

票数 2
EN

Stack Overflow用户

发布于 2013-12-20 09:56:16

不调用onSaveInstanceState的超级实现,就不允许活动(或片段)保存其实例状态。

这包括尚未持久化到其他类型数据存储中的任何瞬态状态。

例如,如果您有一个EditText视图,用户在其中键入一个很长的段落,如果用户切换到另一个应用程序,然后返回到您的应用程序,则如果系统出于内存原因(在实际使用场景中经常发生),EditText状态(用户输入的文本)可能会丢失。

换句话说,打电话给super.onSaveInstanceState,否则你会有一个糟糕的时间。

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

https://stackoverflow.com/questions/20700565

复制
相关文章

相似问题

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