您的位置:首页 > 移动开发 > Android开发

Fragment应用放置后台很久,被系统回收,出现crash(如viewpager + fragment)

2015-10-29 11:17 531 查看

使用Fragment应用放置后台很久,被系统回收,出现crash

B.使用Fragment应用放置后台很久,被系统回收,出现crash;

原因:系统做了源码FragmentActivity调用onSaveInstanceState保存Fragment对象,

这时候系统恢复保存的Fragment,但是在FragmentActivity重新执行生命周期的时候,

我们重新生成了fragment对象附加到该FragmentActivity,系统恢复的fragment和activity失去关联,出错;

处理:方法1.在fragmentActivity里oncreate方法判断savedInstanceState==null才生成新Fragment;否则不做处理;

方法2.在fragmentActivity里重写onSaveInstanceState方法,但不做实现;

源码FragmentActivity

protected void onSaveInstanceState(Bundle outState)

{

super.onSaveInstanceState(outState);

Parcelable p = this.mFragments.saveAllState();

if (p != null)

outState.putParcelable("android:support:fragments", p);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android fragment 异常