Android 开发的一些坑
2016-02-01 10:56
441 查看
IllegalStateException: Can not perform this action after onSaveInstanceState:
[java]
view plain
copy
print?
E/AndroidRuntime(12747): Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1314)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1325)
是在使用FragmentTransition的 commit方法添加一个Fragment的时候出现的,后来在官网找到了相关的
说明:http://developer.android.com/reference/android/app/FragmentTransaction.html#commitAllowingStateLoss()
Like
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就会出错。解决办法就
是把commit()方法替换成 commitAllowingStateLoss()就行了,其效果是一样的。
[java]
view plain
copy
print?
E/AndroidRuntime(12747): Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1314)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1325)
E/AndroidRuntime(12747): Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1314) at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1325)
是在使用FragmentTransition的 commit方法添加一个Fragment的时候出现的,后来在官网找到了相关的
说明:http://developer.android.com/reference/android/app/FragmentTransaction.html#commitAllowingStateLoss()
public abstract int commitAllowingStateLoss () Added
in API level 11
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就会出错。解决办法就
是把commit()方法替换成 commitAllowingStateLoss()就行了,其效果是一样的。
相关文章推荐
- android开发SD卡工具类(一)
- android开发Tost工具类管理(一)
- 解决Android Studio华为手机真机调试下,无法打印生命周期Log的问题
- Android 关于“NetworkOnMainThreadException”问题的原因分析及解决办法
- android开发MD5加密工具类(一)
- android数据存储在文件小结
- android的Log日志打印管理工具类(一)
- android shape的使用
- 创建XmlPullParser两种方式
- Android从相册选取图片并裁剪
- android的Home键的监听封装工具类(一)
- Android中自定义属性Attr的详解使用.
- android开发SDcard 响应的文件相关处理(一)
- Android——修改字符串中所有数字的样式
- Android中px dpi dip density densityDpi 的相关说明
- android Studio/SDK代理设置
- android开发时间和日期的代码实现工具类(一)
- Android中GridView和ArrayAdapter用法实例分析
- android文件和图片的处理工具类(一)
- Binder框架的一些简单总结(关于自定义服务中的Binder)