Android DialogFragment Can not perform this action after onSaveInstance 解决办法

在一些 低性能的手机上 应用登录成功后 跳出 升级提示框,我用dialogFragment 做的,这个时候如果瞬间切到其他页面,比如自己的手势密码或者 桌面,此时之前的主页面被系统回收了,那么就会报上面的错误,DialogFragment 展示 的时候源码如下:

 public void show(FragmentManager manager, String tag) {
        this.mDismissed = false;
        this.mShownByMe = true;
        FragmentTransaction ft = manager.beginTransaction();
        ft.add(this, tag);
        ft.commit();
    }

commit 提交 此时行不通,修改如下:

 final FragmentTransaction fragmentTransaction = fragmentActivity.getSupportFragmentManager().beginTransaction();
        fragmentTransaction.add(dialog, dialog.getClass().getCanonicalName());
        fragmentTransaction.commitAllowingStateLoss();

这个时候就不会再报上述错误了。

你可能感兴趣的:(Android DialogFragment Can not perform this action after onSaveInstance 解决办法)