错误信息:

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState

at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1489)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1507)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:634)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:613)
at com.zte.iptvclient.android.iptvclient.activity.MainFragmentActivity.a(MainFragmentActivity.java:2137)
at com.zte.iptvclient.android.iptvclient.activity.MainFragmentActivity.a(MainFragmentActivity.java:2297)
at com.zte.iptvclient.android.iptvclient.activity.MainFragmentActivity.a(MainFragmentActivity.java:2230)
at com.zte.iptvclient.android.iptvclient.activity.MainFragmentActivity.a(MainFragmentActivity.java:2937)
at com.zte.iptvclient.android.baseclient.f.f.j.q(LoginImplement.java:1845)
at com.zte.iptvclient.android.baseclient.f.f.j.c(LoginImplement.java:75)
at com.zte.iptvclient.android.baseclient.f.f.k.a(LoginImplement.java:308)
at com.zte.iptvclient.android.androidsdk.uiframe.j.b(CommonListDataLoader.java:10355)
at com.zte.iptvclient.android.androidsdk.uiframe.k.handleMessage(CommonListDataLoader.java:206)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5669)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

代码:

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

if (fragment.isAdded())
{
Log.w(LOG_TAG, fragment.getFragmentTitle() + "fragment is added.");
//return;
fragmentTransaction.remove(fragment);
}

setTitle(fragment.getFragmentTitle());

fragmentTransaction.replace(R.id.main_fragment_container, fragment, tag);

fragmentTransaction.commit();  ---  这一行报错

不合法原因:

Like commit() but allows the commit to be executed after an activity's state is saved. This is dangerous

because the commit can be lost if the activity needs to later be restored from its state, so this should

only be used for cases where it is okay for the UI state to change unexpectedly on the user.

大致意思是说我使用的 commit方法是在Activity的onSaveInstanceState()之后调用的,这样会出错,因为onSaveInstanceState

方法是在该Activity即将被销毁前调用,来保存Activity数据的,如果在保存玩状态后再给它添加Fragment就会出错。

解决方法:

将这个方法  fragmentTransaction.commit(); 替换

public abstract intcommitAllowingStateLoss () 其效果是一样的。

解决IllegalStateException: Can not perform this action after onSaveInstanceState相关推荐

  1. java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState

    在使用Fragment的过程中,常常会遇到在Activity的onSaveInstanceState方法调用之后,操作commit或者popBackStack而导致的crash. 因为在onSaveI ...

  2. Caused by:Java.lang.IllegalStateException:Can not perform this action after onSaveInStanceState

    出现情况: 是在使用FragmentTransition 的  Commit() 方法添加一个 Fragment的时候出现的. 问题原因: onSaveInstanceState()方法是在该Acti ...

  3. Fragment Or DialogFragment Can not perform this action after onSaveInstanceState

    转载自Fragment Or DialogFragment Can not perform this action after onSaveInstanceState 表现 可会造成app崩溃掉,具体 ...

  4. Android之提示错误Can not perform this action after onSaveInstanceState

    1 问题 主页面3个Fragment,在第三个Fragment里面开启了Activity之后,然后想跳到第一个Fragment代码如下 /*** 展示Fragment*/private fun sho ...

  5. Can not perform this action after onSaveInstanceState和重建Activity时恢复缓存的Fragmen的问题

    Fragment 在显示或者隐藏,移除是出现Can not perform this action after onSaveInstanceState  #解决办法:onSaveInstanceSta ...

  6. 【常见问题】Can not perform this action after onSaveInstanceState

    onSaveInstanceState是干什么的呢? 通过该方法保留的实例状态数据,然后借助onCreate(Bundle) or onRestoreInstanceState(Bundle),我们可 ...

  7. YII中You are not authorized to perform this action的解决方法

    当访问:TblOrders/listdetial时 YII中出现You are not authorized to perform this action的提示,是因为当前用户没有访问这个控制器下面的 ...

  8. 【Bug解决】Can‘t perform a React state update on an unmounted component. This is > a no-op, but it...

    在 React 应用程序中我们遇到以下警告消息: Can't perform a React state update on an unmounted component. This is a no- ...

  9. 20190313(已解决)对于jsp界面与action界面关系的说明_yingruiyuelin_新浪博客

    1.对于通过可以获得上面的界面,上面红色框所标注的就是从action中传过来的值 传值的条件 1)jsp与action中,在jsp有这样的名字,在action中设定了相应的属相,同时设定了get和se ...

最新文章

  1. date数据类型的正确格式_说说数据类型 上篇日期
  2. linux系统 大分区,linux大硬盘怎么分区
  3. iOS标准库中常用数据结构和算法之内存池
  4. rsync源目录写法的一点小细节
  5. 你知道 Redis 可以实现延迟队列吗?
  6. 【❤️Mark一下❤️】markdown中写上标、下标
  7. 碎片时间学习前端,我推荐这些~
  8. CCO x Hologres:实时数仓高可用架构再次升级,双11大规模落地
  9. c++11特性move和forward区别
  10. Discretized Streams (DStreams)离散化流
  11. 使用BULK COLLECT+FORALL加速批量提交
  12. linux 下nginx应用场景的tcp内核调优
  13. CSDN:数学公式编辑器
  14. 计算机和应用物理学,应用物理学与计算机科学与技术
  15. 回车、换行、回车换行、硬回车以及软回车
  16. .NET 6 RC2 版本发布
  17. 基于ThinkPHP6搭建的后台管理系统
  18. 如何使用WiFi的WPS功能
  19. JavaScript replace 强行保留后三位小数点
  20. DoS、DDos以及DRDoS攻击手段和防范措施

热门文章

  1. 国内人工玻璃体和日本人工玻璃体的区别
  2. python获取中文字体点阵坐标_Python实现点阵字体读取与转换的方法
  3. webpack4.x多页面零配置项目模板
  4. 大话javascript 2期:执行上下文与执行上下文栈
  5. 中国人工智能产业发展联盟成立 360任副理事长单位
  6. Windows 10 中 VMware 要求禁用 Device Guard 问题
  7. 《一》php多进程编程:第一次fork
  8. AI没有偏见?它们从人类的语言中学会了性别和种族歧视
  9. shell脚本:lvs启动简易脚本
  10. 编译安装C源码程序程序