简述onSaveInstanceState()方法的默认实现 ?
参考答案:
onSaveInstanceState()
是 Android 开发中 Activity
和 Fragment
生命周期中的一个重要方法。它的主要作用是在 Activity 或 Fragment 即将被系统销毁之前保存其当前的状态。当系统需要回收内存以用于其他应用,或者当应用被用户关闭但系统决定保留其状态以便稍后恢复时,这种情况就会发生。
onSaveInstanceState()
方法的默认实现是自动保存 Activity 或 Fragment 的视图层次结构中的 UI 状态。这包括例如 EditText
中的文本、CheckBox
的选中状态等。这是通过 Activity
和 Fragment
的内部机制自动完成的,你不需要显式编写代码来保存这些状态。
然而,对于非 UI 数据(例如用户自定义的对象或变量),你需要手动在 onSaveInstanceState()
中保存它们。你可以通过向传入的 Bundle
对象添加键值对来实现这一点。例如:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("myKey", "myValue");
}
在 Activity 或 Fragment 重新创建时(例如,当用户旋转屏幕导致 Activity 重启时),系统会调用 onRestoreInstanceState()
方法,并传入之前保存的 Bundle
对象。你可以在这个方法中恢复你的非 UI 数据。然而,需要注意的是,对于 UI 状态,Android 系统会自动恢复,你通常不需要在 onRestoreInstanceState()
中处理它们。
总的来说,onSaveInstanceState()
的默认实现主要关注于自动保存和恢复 UI 状态,而对于非 UI 数据,你需要手动保存和恢复。