简述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 数据,你需要手动保存和恢复。