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



所以最近的安卓开发者在这里转换。

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

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

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

我们应该保存什么类型的数据/不应该保存什么

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

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

要保存活动的其他状态信息,您必须覆盖 onSaveInstanceState() 并将键值对添加到在活动意外销毁时保存的 Bundle 对象。例如:

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);
}

您可以在此处找到更多详细信息

相关内容

  • 没有找到相关文章

最新更新