Activity被系统销毁造成的Fragment混乱的问题

当MainActivity因系统销毁或后台运行而触发onSaveInstanceState时,可通过保存状态标记避免Fragment混乱。在onCreate中检查savedInstanceState,如果存在并标记为主Activity已销毁,则移除旧Fragment并重新添加,以保持正确状态。
摘要由CSDN通过智能技术生成
大多数App主页底部都会有几个tab页面,用Activity+Fragment或者Activity+Vierpager+Fragment来管理Tab页面(由于viewpager的加载机制所以不会出现这个问题),当程序长期在后台由于系统资源不足就把MainActivity回收了或者从MainActivity点进去的activity报错了点击back回到MainActivity fragment也会混乱,主要是由于fragment的状态还保存着,但是add()和hide() show()方法已经失效了,分析好原因,我们就可以解决了。

在MainActivity被销毁或者在后台等情况下会调用onSaveInstanceState方法来保存状态,所以做个标记outState.putBoolean("isMainActivityDestroy",true);应为被销毁会重新调用onCreate方法,所以你if(savedInstanceState!=null&&savedInstanceState.getBoolean("isMainActivityDestroy",false))满足这个条件就去移除之前fragment状态,重新add fragment。看代码你会更了解;

 protected void onCre
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值