使用Fragment應用放置後臺好久,被系統回收,出現crash

使用Fragment應用放置後臺好久,被系統回收,出現crash;
緣由:系統作了源碼FragmentActivity調用onSaveInstanceState保存Fragment對象,
這時候系統恢復保存的Fragment,可是在FragmentActivity從新執行生命週期的時候,
咱們從新生成了fragment對象附加到該FragmentActivity,系統恢復的fragment和activity失去關聯,出錯;
處理:方法1.在fragmentActivity裏oncreate方法判斷savedInstanceState==null才生成新Fragment;不然不作處理;
方法2.在fragmentActivity裏重寫onSaveInstanceState方法,但不作實現;php

源碼FragmentActivity
protected void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
Parcelable p = this.mFragments.saveAllState();
if (p != null)
outState.putParcelable("android:support:fragments", p);
}
html

相關文章
相關標籤/搜索