java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1341)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1352)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
我产生这个问题的原因是,在Activity销毁后去调用fragmenttransaction的commit方法,我的解决办法是在Activity销毁时,把页面中相关的fragment对象都置为null,这个我们在每次调用commit前都去判断县fragment是否存在,再去进行commit事务提交,这中方法暂时解决了我的问题,不知道后去还会不会有其他问题出现,有的话在进行完善。在网上找了下相关的问题,下面分析的比较到位,可以借鉴:
https://www.androiddesignpatterns.com/2013/08/fragment-transaction-commit-state-loss.html
http://blog.youkuaiyun.com/edisonchang/article/details/49873669
本文介绍了一个常见问题:在Activity销毁后尝试提交FragmentTransaction导致java.lang.IllegalStateException异常。通过将相关Fragment对象置空并在提交前检查其有效性来解决此问题。文章提供了具体的错误堆栈跟踪并链接了两个参考资料。
507

被折叠的 条评论
为什么被折叠?



