跳到主要内容

简述onSaveInstanceState()方法的默认实现 ?

参考答案:

onSaveInstanceState() 是 Android 开发中 ActivityFragment 生命周期中的一个重要方法。它的主要作用是在 Activity 或 Fragment 即将被系统销毁之前保存其当前的状态。当系统需要回收内存以用于其他应用,或者当应用被用户关闭但系统决定保留其状态以便稍后恢复时,这种情况就会发生。

onSaveInstanceState() 方法的默认实现是自动保存 Activity 或 Fragment 的视图层次结构中的 UI 状态。这包括例如 EditText 中的文本、CheckBox 的选中状态等。这是通过 ActivityFragment 的内部机制自动完成的,你不需要显式编写代码来保存这些状态。

然而,对于非 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 数据,你需要手动保存和恢复。