尝试提交片段事务时是否出现IllegalStateException?

时间:2012-10-23 18:46:19

标签: java android android-fragments

尝试提交片段事务时,我收到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();
    }
}

0 个答案:

没有答案