安卓中,活动存在四种状态,分别是 运行状态、暂停状态、停止状态和销毁状态,除了运行状态之外,当系统内存不足的情况下,其他三种状态都有可能被回收,这样就会出现数据丢失的情况,那么如何在活动被回收之前保存数据呢,今天介绍两种方式(据说有四种,其他两种不知道以后学了在更新)。
第一种:使用onSaveInstanceState()方法:
在任务栈中,B处于顶端,A处于B下面,如果A被回收了,那么B返回后,依然会显示A,只是此时的A是重新创建出来的活动,也就是说调用了A的onCreate方法创建出来的新的活动,因此,A之前的所有数据也就销毁了,但是我们可以利用Activity提供的onSaveInstanceState方法:
protected void onSaveInstanceState(Bundle outState) {
outState.putBundle(WINDOW_HIERARCHY_TAG, mWindow.saveHierarchyState());
Parcelable p = mFragments.saveAllState();
if (p != null) {
outState.putParcelable(FRAGMENTS_TAG, p);
}
getApplic