java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
在开发中使用DialogFragment,启动后马上点击home键,随即爆出以上异常,网上测试了许多办法,最终使用一下方法解决。特此记录:
@Override
public void show(FragmentManager manager, String tag) {
try {
Class c = Class.forName("android.support.v4.app.DialogFragment");
Constructor con = c.getConstructor();
Object obj = con.newInstance();
Field dismissed = c.getDeclaredField("mDismissed");
dismissed.setAccessible(true);
dismissed.set(obj, false);
Field shownByMe = c.getDeclaredField("mShownByMe");
shownByMe.setAccessible(true);
shownByMe.set(obj, false);
} catch (Exception ex) {
Log.logE("Exception: " + ex.toString());
}
FragmentTransaction ft = manager.beginTransaction();
ft.add(this, tag);
ft.commitAllowingStateLoss();
}
@Override
public void dismiss() {
dismissAllowingStateLoss();
}