博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
<转> 解决异常:IllegalStateException: Fragment <ThisFragment> is not currently in the FragmentManager...
阅读量:6237 次
发布时间:2019-06-22

本文共 799 字,大约阅读时间需要 2 分钟。

上午敲代码时出现这个问题,简单记录一下解决办法,有时间详细描述一下深层原因。 

问题出现在这:

@Overridepublic void onSaveInstanceState(Bundle outState) {    super.onSaveInstanceState(outState);    getSupportFragmentManager().putFragment(outState, "mContent", mContent); }

 

 

网上查看了一下,只需修改为如下:

@Override public void onSaveInstanceState(Bundle outState) {    super.onSaveInstanceState(outState);    if (mFragment.isAdded()){        getSupportFragmentManager().putFragment(outState, "mFragment", mFragment);     }}

 当我们的应用(即管理多个Fragment的Activity)运行到后台时(即退出当前屏幕),会触发Activity的onPause()方法,而Activity的onPause()会调用它所管理的Fragment的同样的方法,但是当我使用replace时,已经remove掉了原来的Fragment,所以当调用原理的Fragment的onPause()方法就回不存在,就会出现上述xxx is not currently in the FragmentManager的异常推出

以上代码

意思是:在onSaveInstanceState(Bundle outState)方法中保存fragment时,要先确保fragment是否已经加入到fragment manager中。

转载地址:http://ptzia.baihongyu.com/

你可能感兴趣的文章
Android开发指南(43) —— Location and Maps
查看>>
PHP企业级开发环境配置全攻略-IDE+SVN++(转)
查看>>
快速构建实时抓取集群 « 搜索技术博客-淘宝
查看>>
[实用开源]端口转发小工具rtcp.py
查看>>
CSS实现截取隐藏文字
查看>>
C# 程序开机启动
查看>>
程序9
查看>>
Jquery获取当前元素的索引值
查看>>
GIT SSH连接遇到到的问题
查看>>
My Solution to Longest Substring Without Repeating Characters
查看>>
<转> 编写超级可读代码的15个最佳实践
查看>>
VMware vSphere Client的显示语言
查看>>
php小代码(转)
查看>>
Windows内核编程之:返回状态值
查看>>
Xeon Phi之MIC编程知识点
查看>>
jigloo安装和介绍
查看>>
Linux下配置SSL (转)
查看>>
《转》程序员每年要做的十件事
查看>>
Android实现XML解析技术
查看>>
asp.net使用include包含文件
查看>>