开发中关于Fragment异常的两个问题

FragmentManager is already executing transactions异常 Activity中添加了一个Fragment1,在Fragment1的onViewCreated方法中回调Activity中。Activity继承了接口IAction,其方法中打开Fragment2。方法打开界面Fragment2,发生错误。方法造成的,将其修改为。 阅读详情

下边两个问题,是在开发中碰到的一些关于Fragment的偶发性的问题,今天时间比较多,就在网上搜了一些解决方式:

1、关于Fragment(XXFragment) not attached to Activity 异常。出现该异常,是因为Fragment的还没有Attach到Activity时,调用了如getResource()等,需要上下文Content的函数。解决方法,就是等将调用的代码写在OnStart()中。网上还有几处这样的参考:http://stackoverflow.com/questions/10919240/fragment-myfragment-not-attached-to-activity  回答的主要是在调用

getResources().getString(R.string.app_name);
之前增加一个判断isAdded(),两外说这个异常解决办法的有 http://stackoverflow.com/questions/6870325/android-compatibility-package-fragment-not-attached-to-activity
这个是针对另外一种情况下的解决方式。
2、在使用Fragment保存参数的时候,可能是因为需要保存的参数比较大或者比较多,这种情况下页会引起异常。比如代码
		Bundle b = new Bundle();
		b.putParcelable("bitmap", bitmap2);
		imageRecognitionFragment.setArguments(b);
设置好参数,并且添加hide(),add(),方法之后,需要commit(),来实现两个Fragment跳转的时候,这种情形下参数需要进行系统保存,但是这个时候你已经实现了跳转,系统参数却没有保存。此时就会报
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
异常。分析原因:你并不需要系统保存的参数,只要你自己设置的参数能够传递过去,在另外一个Fragment里能够顺利接受就行了,现在android里提供了另外一种形式的提交方式commitAllowingStateLoss(),从名字上就能看出,这种提交是允许状态值丢失的。到此问题得到完美解决,值的传递是你自己控制的。
这里也说一下另外一个问题,bitmap 也可以通过Bundle传递的,使用putParacelable就可以了









Fragment中Toolbar的Menu创建过程 Fragment中使用Toolbar的menu创建过程简析。 阅读详情

相关推荐

Android_退出activity重新进入报错:Fragment not attached to an activity---Android原生开发工作笔记165

这个时候,就要用到try catch了,但是实际上发现,功能上,没有任何影响,加上try catch就可以了.类似这种代码的时候报错的,这个时候getActivity()无法获取,解决方法就是.这个错误是由于当前的Fragment中,在使用getActivity()这样来处理就好一些了,但是实际上,可能还会有问题,

添柴程序猿的专栏 1401

Android commit 和 commitAllowingStateLoss 的区别

会引起一种问题:因内存不足而把不显示在前台的 activity (带有 fragment)销毁,之后用户再回到此 activity 页面时,是会丢失在。商业转载请联系作者获得授权,非商业转载请注明出处。方法的注释上也写明,调用此方法会有丢失页面状态信息的风险。这明显是有点逃避问题,那么这个状态是什么判断而得出的呢?确实是不报错了,但是为什么呢?意思就是说我们不能在调用。不报错(睁一只眼闭一只眼)。网上的解决办法是使用。方法提交的页面状态信息!作者:chenxuxu。...

weixin_42190533的博客 1406

问题解决:Fragment not attached to Activity相关代码

问题解决:Fragment not attached to Activity的相关代码,更多详细内容请参考:http://blog.csdn.net/u012939909/article/details/53355836

Android commitAllowingStateLoss 与 commit() 切换fragment 区别

这是因为FragmentManager会在状态保存后保存事务的回退栈,所以如果在状态保存后提交一个事务,那么这个事务就不会被保存在回退栈中。这可能会导致应用在恢复状态时出现不一致的状态。: 这个方法允许在状态已经被保存后提交事务,即使这可能会导致状态丢失。它不会抛出状态丢失的异常,但如果在状态保存后提交事务,那么这个事务就不会被保存在回退栈中,可能会导致应用在恢复状态时出现不一致的状态。通常来说,你应该尽量避免在状态已经保存后提交事务,因为这可能会导致应用的用户界面状态与实际的应用状态不一致。

丿灬安之若死 1829

从大疆智图到Cesium:3D Tiles模型加载与Web三维场景构建实战

本文详细介绍了如何利用大疆智图生成3D Tiles数据,并通过Cesium在Web端实现高效加载与三维场景构建。从大疆智图参数设置到Cesium环境配置,再到3D Tiles性能调优与高级功能实现,提供了一套完整的实战指南,帮助开发者快速掌握3D Tiles模型加载与Web三维场景构建技术。

weixin_30520015的博客 1285

electron打包客户端在rk3588上支持h265硬解

前言我们的客户端程序是用electron打包的前端程序,其在rk3588主机上的linux环境运行。之前使用客户端查看h264编码的视频直播是没有问题的,但视频源更改为h265编码后就不能查看了,奇怪的是打包的windows客户端则可以正常查看,另外rk3588主机上的chromium浏览器也是支持播放h265编码的视频的,并且是硬件解码。

lxkj_2024的博客 2007

Fragment嵌套ViewPager切换后数据消失ViewPager空白问题

先描述一下现象 如图解决后如图 之前先在网上找了很多的解决办法,有的网友说要继承FragmentStatePagerAdapter替换掉FragmentPagerAdapter我试了试没管用。后来在解决如下 此方法为初始化ViewPagerprivate void init() { fragmentsList = new ArrayList(); manager

TaoLee 1万+

Docker部署OnlyOffice踩坑实录:解决editor.bin下载失败的3种姿势

本文详细解析了Docker部署OnlyOffice时editor.bin下载失败的常见原因,并提供了三种核心解决方案。重点剖析了容器网络配置、Nginx反向代理(特别是proxy_pass设置)以及安全策略调整,帮助开发者彻底解决静态资源加载问题,确保文档协作平台稳定运行。

weixin_29281941的博客 871

Android异常 :Fragment already added

if(mFragment.isAdded()) { return; }

weixin_39646917的博客 2068

DexProtector内存校验绕过与DEX提取实战

DEX文件是Android应用的核心执行单元,其动态加载与运行时保护机制直接关系到App安全强度。DexProtector作为主流商业加固方案,摒弃传统文件级防护,转而依托ART虚拟机下的匿名内存映射段(anonymous mmap)构建多维校验体系——涵盖字节码完整性校验、内存页属性检测及运行时环境感知。其技术价值在于将防护锚点从静态APK迁移至动态内存态,大幅提升逆向门槛。典型应用场景包括金融类App的防篡改加固、游戏客户端的反外挂保护,以及政企应用的合规性安全增强。本文聚焦DexProtector v

weixin_30315435的博客 714

Voicebox本地部署:模型下载与离线模式实战指南

在本地语音处理场景中,模型下载失败和离线运行需求是开发者最常遇到的两大难题。理解语音工具的本地推理原理,关键在于掌握模型文件与程序逻辑的分离管理:模型独立下载,程序负责推理,输出留在本机。这种架构带来显著的技术价值——数据不出本地、不依赖公网、批量任务不中断。无论是语音识别转写、语音合成,还是集成到自动化脚本中,本地离线模式都能在隐私敏感或网络不稳定环境下稳定运行。对开发者而言,先解决模型文件的完整获取,再验证离线启动流程,就能绕过“无法下载模型”的常见坑。本文从环境准备、模型放置、服务启动到接口调用,提供

weixin_29048309的博客 306

Fragment already added 解决办法

Android移动开发者的专栏 7262

数学建模学习(78):多输入多输出回归预测模型(结合XGBoost实现)

多输入多输出回归预测问题求解

全栈川川 8130

关于Fragment使用中遇到的异常:Fragment already added和fragment not attached

问题1:java.lang.IllegalStateException: Fragment already added异常的处理。 当快速双击调用FragmentTransaction.add()方法添加fragmentA,而fragmentA不是每次单独生成的,就会引起这个异常。 DialogFragment.show()内部调用了FragmentTransaction.add()方法,

lihappyangel的专栏 3046

乐企增值税及附加税费(一般纳税人适用)申报表填报能力说明文档V3.009

申报表填报,是指企业在自有业务系统中将算税结果数据按预填规则要求加工汇总后,进行申报表填报的过程。申报表填报前对纳税申报所需的前提条件进行校验。校验通过后,应用前序算税结果数据及预填规则进行纳税申报表预填,生成申报表数据。申报表数据通过申报业务规则校验后,经纳税人确认即完成申报表填报业务。

记录点滴 345

如何使用 Python 爬虫获取猫眼电影数据:电影评分与评论分析

随着互联网的快速发展,越来越多的人开始使用各种在线平台来了解电影信息,猫眼电影作为一个非常流行的在线电影票务平台,提供了详细的电影评分、评论和票房数据。本篇博客将详细介绍如何使用 Python 爬虫技术获取猫眼电影平台上的电影数据,重点关注电影评分和用户评论的爬取,分析其背后的数据处理和反爬虫技术。如果你对数据分析、电影评论分析等话题感兴趣,可以根据本文的示例进一步深入挖掘更多的数据,为决策提供支持,或为电影产业的相关研究提供有价值的分析依据。有些猫眼电影的页面数据是动态加载的,使用。

2201_76125261的博客 1623

两层Fragment嵌套,外层Fragment切换时内层Fragment不显示内容

转眼,已经凌晨四点半了,凌晨四点半的五道口很安静,很美。

civil的专栏 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

005_Fragment使用中遇到的异常

1、java.lang.IllegalStateException: Fragment already added异常的处理。 当快速双击调用FragmentTransaction.add()方法添加fragmentA,而fragmentA不是每次单独生成的,就会引起这个异常。 ...

baopengjian的专栏 2237

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

安卓中Fragment嵌套Fragment使用存在的bug

项目是fragment嵌套fragment,最初的时候在fragment  viewpager中的第一个fragment中嵌套fragment viewpager 其他是fragment 没有什么问题,后边需求改变,在第一个fragment中嵌套的fragment viewpager 要移动到第三个fragment中,意思就是第一个fragment viewpager与第三个fragment换一下...

点滴之路的博客 1919

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android fragment 嵌套,Android中Fragment的嵌套问题

答:hackbod(最佳答案)这种异常是嵌套片段(nested fragment)与系统版本不相容导致的,而嵌套片段通常支持Android4.2。一个fragment的UI中嵌套另一个fragment,极有可能会造成程序运作异常。注:嵌套片段只能在动态添加的操作中完成,也就是说,当layout中已经包含了一个,就不能将再将这个layout嵌入到fragment中。答:furykid你可以用dest...

weixin_42682925的博客 1041
上一篇: Android开发带有圆角列表UI布局续
下一篇: 开发中遇到的关于时间的处理:设置时间范围大于当前时间小于某一天
Steffen02
博客等级 码龄16年 138粉丝 33原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值