开发者社区> 最美的回忆> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

[Android Pro] java.lang.IllegalStateException: Fragment(XXFragment) not attached to Activity异常

简介:
+关注继续查看

转载:http://blog.csdn.net/winson_jason/article/details/20357435

下边两个问题,是在开发中碰到的一些关于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); 
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); 
 
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就可以了
分类: Android Pro
本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/3938013.html如需转载请自行联系原作者

demoblog

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )
【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )
0 0
Android viewpager嵌套使用photoview异常问题(java.lang.IllegalArgumentException)
Android viewpager嵌套使用photoview异常问题(java.lang.IllegalArgumentException)
0 0
Android之提示java.lang.RuntimeException: Parcel: unable to marshal value Image问题
Android之提示java.lang.RuntimeException: Parcel: unable to marshal value Image问题
0 0
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.Intent.getI...
这个报错比较骚,完全只是因为Intent没有写好而已,下面是错误的写法(最好不要在方法外赋值): 进入本活动时即刻报错: 11-10 18:23:24.
2891 0
我的Android进阶之旅------>解决DownloadManager报错java.lang.SecurityException: Invalid value for visibility: 2
1、问题描述 今天使用Android系统的DownloadManager进行下载操作时,爆了如下所示的错误: java.lang.RuntimeException: Unable to start service com.
1349 0
java.lang.NoSuchMethodError: android.view.View.setBackground
今天给自定义控件设置drawable出现java.lang.NoSuchMethodError: android.view.View.setBackground,这是setBackground上下版本兼容型的问题;修改为如下代码即可: public void setImage(Drawable drawable) { int sdk = android.
623 0
Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/50836538 错误信息字符串:java.
883 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载