您的位置:首页 > 其它

Fragment应用放置后台很久再次进入不会重新刷新数据展示、或者直接崩溃问题解决

2017-11-13 09:20 761 查看
什么原因呢?如何解决呢?

当Fragment长久不使用,系统进行回收,FragmentActivity调用onSaveInstanceState保存Fragment对象。 

Activity可能会被系统回收,然后Fragment并不会随着Activity的回收而被回收,从而导致,Fragment丢失对应的Activity。 
很长时间后,再次打开app,系统恢复保存的Fragment,但是在FragmentActivity重新执行生命周期的时候,我们重新生成了fragment对象附加到该FragmentActivity,系统恢复的fragment和activity失去关联,进而出错。

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

方案2:在fragmentActivity里重写onSaveInstanceState方法,但不做实现,也就是将super.onSaveInstanceState(outState)注释掉。 这样你Activity销毁了你也不用保存我Fragment的状态了。

方案3:if(savedInstanceState!=null){ 

FragmentManager manager = getSupportFragmentManager(); 

manager.popBackStackImmediate(null, 1); 

}判断savedInstanceState不等以null就弹出所有Fragment 全部重新加载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐