在Android开发中,为了保存当前状态,我们常常需要重写onSaveInstanceState(Bundle savedInstanceState)方法,然后写你想改变的应用程序状态的参数值,就像这样:@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
// 保存savedInstanceState的UI的状态改变
// 如果这个进程被杀死、重新打开,这个包将被传递给onCreate
savedInstanceState.putBoolean("MyBoolean", true);
savedInstanceState.putDouble("myDouble", 1.9);
savedInstanceState.putInt("MyInt", 1);
savedInstanceState.putString("MyString", "Welcome back to Android");
// 等等
}
这个包本质上就是存储MVP(Name-Value Pair)地图的一种方式,然后它将你想抽取的值传递到onCreate和onRestoreInstanceState,就像这样:@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// 从savedInstanceState中重新打开UI状态
// 这个包已经被传递给了onCreate
boolean myBoolean = savedInstanceState.getBoolean("MyBoolean");
double myDouble = savedInstanceState.getDouble("myDouble");
int myInt = savedInstanceState.getInt("MyInt");
String myString = savedInstanceState.getString("MyString");
}
你可以使用这个方法来存储你的应用实例的值(未保存的文档等)