Android开发中,如何维持住一个Activity的状态2015-10-24 01:48:39
( 1人已投票,[高质量] )
在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"); }
你可以使用这个方法来存储你的应用实例的值(未保存的文档等)