了解了活动的生命周期之后,关于活动被系统回收时,有时候一些临时数据会消失,这时候会用到onSaveInstanceState()方法,
主要原理是:
在活动被回收之前,将临时数据存在onSaveInstanceState()方法中的Bundle中,然后在活动创建时候,在oncreate()方法中再次从Bundle中取出来
具体:
首先,onSaveInstanceState()方法中,保存数据
@Override public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) { super.onSaveInstanceState(outState, outPersistentState); String saveData = "要保存的数据"; outState.putString("data",saveData); }
其次,在oncreate()方法中取出数据:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null){ String data = savedInstanceState.getString("data"); //data即为之前保存的数据 } }