尝试提交片段事务时,我收到IllegalStateException。错误是“无法在onSaveInstanceState之后执行此操作”。现在我知道我应该等到执行这些事务,直到活动调用onResumeFragments。在活动进行后台处理后发生崩溃,然后在单击按钮更改片段时恢复。我等了10秒钟它仍会崩溃。当主屏幕之后恢复活动时,重新加载旧片段并按预期工作。当用户单击将运行下面代码的按钮时,会发生崩溃。崩溃发生在commit()调用。知道会导致这种情况的原因吗?
更改片段的代码:
private void changeFragment(MyRoboFragment frag, boolean allowStateLoss) {
String fragName = frag.getClass().getName();
if (fragName.equals(currentFragmentName)) return;
currentFragmentName = fragName;
FragmentTransaction transaction = fragMan.beginTransaction();
transaction.replace(R.id.base_fragment, frag);
if (frag.pushToBackStack) {
transaction.addToBackStack(null);
}
if (allowStateLoss == true) {
transaction.commitAllowingStateLoss();
} else {
transaction.commit();
}
}