Android 错误:IllegalStateException: Can not perform this action after onSaveInstanceState

  今天做Fragment切换、状态保存功能的时候,出现了这个错误:

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()方法时发生的该问题,于是搜了下相关解答,得知:我使用的 commit方法是在Activity的onSaveInstanceState()之后调用的,这样会出错,因为onSaveInstanceState方法是在该Activity即将被销毁前调用,来保存Activity数据的,如果在保存玩状态后再给它添加Fragment就会出错。

  解决办法:把commit()方法替换成 commitAllowingStateLoss()就行了,从名字上就能看出,这种提交是允许状态值丢失的。到此问题得到完美解决,值的传递是你自己控制的,其效果是一样的。

时间: 2024-11-23 12:13:09

Android 错误:IllegalStateException: Can not perform this action after onSaveInstanceState的相关文章

Android错误:ava.lang.IllegalStateException

Android错误:ava.lang.IllegalStateException: Recursive entry to executePendingTransactions 错误 java.lang.IllegalStateException: Recursive entry to executePendingTransactions at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager

android-编译时遇到的Android错误

问题描述 编译时遇到的Android错误 在Android应用编译时,错误: can't open /data/misc/hprof_oom_dump.hprof: Permission denied 请帮忙解决 解决方案 缺少权限,在mainfaints文件中添加权限 解决方案二: 没权限 是不是缺少SD卡读写权限

cocos2dx配置win7平台开发android错误

问题描述 cocos2dx配置win7平台开发android错误 用vs2012运行生成的windows版成功,将android版导入eclipse,先是提示不能解析包,然后我导入了.运行提示上图错误. 版本是cocos2dx-3.1 解决方案 库链接错了 解决方案二: 这个有没有重新重新编译.so文件? 解决方案三: 项目是没问题的么? 第一行错误有没有影响 Reading a NULL string Cocosdcpp是从哪里链接的? 是动态库文件么?

Android官方入门文档[6]添加Action按钮

Android官方入门文档[6]添加Action按钮   Adding Action Buttons添加Action按钮   This lesson teaches you to1.Specify the Actions in XML2.Add the Actions to the Action Bar3.Respond to Action Buttons4.Add Up Button for Low-level Activities You should also read•Providing

struts错误 HTTP Status 404 - /HelloWorldStruts2/hello.action

问题描述 初学struts,也没什么积分,头一次发帖了,写的不详细的地方还望各位多多提出,还望各位大神多多指教!是按照struts的例子学习的http://www.tutorialspoint.com/struts_2/struts_examples.htm.Navigator模式下的项目结构图如下:HelloWorldAction.java代码如下:packagecom.tutorialspoint.struts2;publicclassHelloWorldAction{privateStri

android错误 aapt.exe已停止工作的解决方法_Android

在使用eclipse进行安卓java的编程的时候,有时候我们会遇到这样的问题:那就是无故弹出aapt.exe停止工作的提示,虽然程序不会崩溃,但是这个提示经常弹出很是烦人.今天,小编就来教大家aapt.exe停止工作如何解决 android异常--aapt.exe已停止工作 在android开发时,当build项目时,发生如下异常: aapt.exe已停止工作,其他无任何错误提示,发生这个错误一般是资源文件或是xml文件中有错误造成的. 解决方法: clean一下,可以发现console中会有错

Android错误集锦: "程序包R不存在" 的解决方法

新建一个Android项目,修改资源.包名等多种信息后,报『错误: 程序包R不存在』的错误. 意译为:『您引用的R可能与包名不符,非包名路径下的文件可能需要写明 "import 包名.R".请在查验包名正确后重试』. 问题分析: 这种情况下,问题多出在包名.  尤其在java文件中没有写明『import **.R』时,IDE目测会去当前java文件的同包名找R:  解决方法: 1.可以在该文件中写明『import 包名(AndroidManifest中的).R; 』,然后再build:

Android错误集锦:Error:Execution failed for task ':app:processMockDebugManifest'.

错误描述: Error:Execution failed for task ':app:processMockDebugManifest'. > Manifest merger failed : Attribute application@allowBackup value=(false) from AndroidManifest.xml:23:9-36   is also present at [net.qiujuer.common:okhttp:3.0.0] AndroidManifest.

android错误 aapt.exe已停止工作的解决方法

在使用eclipse进行安卓java的编程的时候,有时候我们会遇到这样的问题:那就是无故弹出aapt.exe停止工作的提示,虽然程序不会崩溃,但是这个提示经常弹出很是烦人.今天,小编就来教大家aapt.exe停止工作如何解决 android异常--aapt.exe已停止工作 在android开发时,当build项目时,发生如下异常: aapt.exe已停止工作,其他无任何错误提示,发生这个错误一般是资源文件或是xml文件中有错误造成的. 解决方法: clean一下,可以发现console中会有错