我的android异常系列——java.lang.IllegalStateException: commit already called
来源:互联网 发布:淘宝商家入驻在哪 编辑:程序博客网 时间:2024/06/06 01:37
我的异常系列目录为:http://www.jianshu.com/p/cb10697226ef
出现commit already called这个异常的原因是:同一个FragmentTransaction只能commit一次(调用commit方法),可在它的实现类 BackStackRecord中找到以下代码,每一个BackStackRecord对象都会维护一个布尔变量(mCommitted),当commit后赋值这个变量为true,下次再commit时会检查这个变量,如果是true,则抛出以上异常。commit方法的源码如下:
```java@Overridepublic int commit() { return commitInternal(false);}int commitInternal(boolean allowStateLoss) { if (mCommitted) throw new IllegalStateException("commit already called"); if (FragmentManagerImpl.DEBUG) { Log.v(TAG, "Commit: " + this); LogWriter logw = new LogWriter(TAG); PrintWriter pw = new PrintWriter(logw); dump(" ", null, pw, null); } mCommitted = true; //这里赋值为true了 if (mAddToBackStack) { mIndex = mManager.allocBackStackIndex(this); } else { mIndex = -1; } mManager.enqueueAction(this, allowStateLoss); return mIndex;}```
综上,我们在使用FragmentTransaction时,需要保证这个对象只调用一次commit,下次commit时需要重新获取!
阅读全文
0 0
- 我的android异常系列——java.lang.IllegalStateException: commit already called
- Android:java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- 遇到java.lang.IllegalStateException: commit already called
- Java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- java.lang.IllegalStateException: commit already called
- 创建对象的方法
- MySQL日期时间函数
- Spring之IOC快速入门(一)
- Android 系统启动时 PackageManagerService 对应用组件信息表的构建过程
- oracle查询锁表解锁语句
- 我的android异常系列——java.lang.IllegalStateException: commit already called
- cmd的操作命令导出导入.dmp文件
- D
- Apache Kylin Cube 构建原理
- 实现用例中随意截图并添加到报告中
- 微信小程序开发之图片等比例缩放 获取屏幕尺寸图片尺寸 自适应
- 关于CryptoJS中md5加密以及aes加密的随笔
- 人为什么会后悔和有选择困难症?
- OpenGL-混合