所以最近的安卓开发者在这里转换。
我在在线教程中看到人们提到我们需要使用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);
}
您可以在此处找到更多详细信息