📅  最后修改于: 2023-12-03 15:18:06.889000             🧑  作者: Mango
在 Android 开发中,我们经常需要为应用程序在设备方向或者其他配置发生变化时保存一些重要的数据,以便于在恢复原始状态时可以重新加载这些数据。而 onSaveInstanceState
方法则是为我们提供了一种保存活动状态的机制,以便于在 Activity 重新启动时可以方便地重现上一个状态。
onSaveInstanceState
方法是在每次 Activity 即将被销毁时调用的,并可以用于保存一些重要的状态数据。当设备配置发生变化时(例如横竖屏切换),Activity 会被销毁并重新创建,而保存在 onSaveInstanceState 中的数据则可以在 Activity 重新创建后被恢复。
要使用 onSaveInstanceState 方法,你需要重写 Activity 中的 onSaveInstanceState 方法,并使用 Bundle 对象保存你想要保存的数据。通常情况下,你可以在 onCreate 方法中检查 savedInstanceState 是否为 null,如果不为 null 则说明当前 Activity 正在被重新创建,此时你需要从 Bundle 中读取并恢复之前保存的状态数据。
下面是一个 onSaveInstanceState 方法的示例代码:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// 保存一些状态数据
outState.putString("my_key1", my_value1);
outState.putInt("my_key2", my_value2);
}
在 onCreate 方法中,你可以检查 savedInstanceState 是否为 null,如果不为 null 则说明当前 Activity 正在被重新创建,此时你需要从 savedInstanceSate 中读取之前保存的状态数据。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 检查 savedInstanceState 是否为 null
if (savedInstanceState != null) {
// 从 savedInstanceState 中读取数据
my_value1 = savedInstanceState.getString("my_key1");
my_value2 = savedInstanceState.getInt("my_key2");
}
}