开发中关于Fragment异常的两个问题
下边两个问题,是在开发中碰到的一些关于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 回答的主要是在调用
[java] view plain copy
getResources().getString(R.string.app_name);
之前增加一个判断isAdded(),两外说这个异常解决办法的有 http://stackoverflow.com/questions/6870325/android-compatibility-package-fragment-not-attached-to-activity
这个是针对另外一种情况下的解决方式。
2、在使用Fragment保存参数的时候,可能是因为需要保存的参数比较大或者比较多,这种情况下页会引起异常。比如代码
[java] view plain copy
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就可以了
转载于:https://www.cnblogs.com/wikiki/p/7459343.html
开发中关于Fragment异常的两个问题相关推荐
- android开发中的ANR异常
android开发中的ANR异常 参考文章: (1)android开发中的ANR异常 (2)https://www.cnblogs.com/yejiurui/archive/2012/11/08/27 ...
- android fragment 教程,Android app开发中的Fragment入门学习教程
在Android3.0上开始引入了一个新概念叫Fragment.它有自己的布局文件,可以作为组件排布,也可以相互组合去实现不同的布局显示.使用Fragment可以重复利用代码,并且可以满足不同设备尺寸 ...
- android应用开发中收集的异常日志解决方法记录
这里主要是列出开发中收集的一些错误日志,以及解决方案,仅供参考,也有待解决的问题 1, ListView 中出现java.lang.IndexOutOfBoundsException: Invalid ...
- 【我的C语言学习进阶之旅】介绍一下NDK开发中关于JNI函数的两种注册方式:静态注册和动态注册
目录 一.要介绍本篇博客的原因 二.静态注册 2.1 实现原理 2.2 实现过程 2.3 弊端 2.4 示例 三.动态注册 3.1 实现原理 3.2 实现过程 3.3 优点 3.4 示例 一.要介绍本 ...
- android开发中遇到的异常及解决方法
每次运行项目,可能因为粗心或者哪一行代码没有调用,会导致项目不能运行,出现异常. 以下就是我总结的各种异常,会一直更新. 1. Unable to find explicit activity cla ...
- Java 开发中常见的异常有哪些?
1.空指针异常(NullPointException):当对象不存在,却又去调用对象的属性或方法时,就会出现该异常 2.数组越界异常(ArrayIndexOutOfBoundsException):当 ...
- Java基础学习系列--(七)彻底搞懂java中的【异常、线程】的使用
第一章 异常 1.1 异常概念 异常,就是不正常的意思.在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常 :指的是程序在执行过程中, ...
- 【狂云歌之unity_vr】VR开发中的优化
[狂云歌之unity_vr]VR开发中的优化 前言 大概做了大半年的VR开发,HTCVive上与room scale和手柄控制器.激光相关的开发做过,gearvr使用oculus sdk开发做过,使用 ...
- iOS开发中内置浏览器
iOS开发中浏览网页通常有两种选择: 一是启动Mobile Safari的应用进行浏览,或是利用UIWebView进行内置显示. 但两种都有各种的不足,启动Safari应用会导致当前应用的中断或者退出 ...
最新文章
- oracle中的rowid--伪列-删除表中的重复内容-实用
- PC上虚拟机中安装NW 7.02 ABAP试用版
- 喜报!良品铺子签约神策数据
- 为同一个元素绑定多个不同的事件,并指向相同的事件处理函数方法
- RxJava API使用示例
- python编程100例-Python3经典100例(①)
- larveral 直接拷贝安装_做一个能引导所有系统的安装盘
- 新手思考如何开发自己的软件
- 计算机网络投标书质量保证措施,计算机网络标书模板.doc
- java---抽奖小程序
- GNSS-SINEX文件格式简介
- 2018天池大数据-印象盐城:数创未来大数据竞赛经验分享
- usermod--修改用户账号信息命令
- ipmi管理工具 ipmitool
- idea 快速生成接口文档
- PyCharm for Mac (强大的Python IDE工具) v2021.3
- MATLAB仿真贝塞尔函数
- 实习日记——Day47
- 计算机打印机接口多少跟针,针式打印机 日常故障分析与维修实例
- css font-family字体总结表