gpt4 book ai didi

android - onSaveInstanceState() 会自动保存什么?什么不是?

转载 作者:行者123 更新时间:2023-11-30 00:33:26 26 4
gpt4 key购买 nike

所以最近的 android dev 在这里转换。

我在在线教程中看到人们提到我们需要使用 onSaveInstanceState() 但他们没有提到我们应该在什么时候使用它。

显然,TextView 对象的内部文本(或按钮的内部文本)不需要保存。

需要保存什么? EditText 内容会自动保存吗?

我们应该保存哪些类型的数据/我们不应该保存哪些类型的数据

最佳答案

保存你的 Activity 状态当您的 Activity 开始停止时,系统会调用 onSaveInstanceState() 方法,以便您的 Activity 可以使用一组键值对保存状态信息。此方法的默认实现保存有关 Activity View 层次结构状态的 transient 信息,例如 EditText 小部件中的文本或 ListView 小部件的滚动位置。您的应用程序应在 onPause() 方法之后和 onStop() 之前实现 onSaveInstanceState() 回调。不要在 onPause() 中实现此回调。

警告:您必须始终调用 onSaveInstanceState() 的父类(super class)实现,以便默认实现可以保存 View 层次结构的状态。

要为您的 Activity 保存额外的状态信息,您必须覆盖 onSaveInstanceState() 并将键值对添加到 Bundle 对象中,以便在您的 Activity 意外销毁时保存该对象。例如:

static final String STATE_SCORE = "playerScore";
static final String STATE_LEVEL = "playerLevel";
...

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save the user's current game state
savedInstanceState.putInt(STATE_SCORE, mCurrentScore);
savedInstanceState.putInt(STATE_LEVEL, mCurrentLevel);


// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}

您可以找到更多详细信息 here

关于android - onSaveInstanceState() 会自动保存什么?什么不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43838070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com