我正在使用Sherlock Fragment,并且当最小化应用程序时再次打开应用程序时,如果对话框打开,则会崩溃。
以下是我的例外:
Stack trace java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1360)
android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1378)
android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
android.support.v4.app.DialogFragment.dismissInternal(DialogFragment.java:200)
android.support.v4.app.DialogFragment.dismiss(DialogFragment.java:166)
****.BookingDialogFragment$4$1.run(BookingDialogFragment.java:325)
android.os.Handler.handleCallback(Handler.java:730)
android.os.Handler.dispatchMessage(Handler.java:92)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:5493)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:525)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
dalvik.system.NativeStart.main(Native Method)
提前感谢。
我正在使用ft.commitAllowingStateLoss();提交片段。
这是我的预订对话代码
mBookingDialogFragment.dismiss();
CabBookingFlow cabBookingFlow = new CabBookingFlow();
cabBookingFlow.setCancelable(false);
cabBookingFlow.show();
朋友,谢谢您的评论和回答。我解决了这个问题。
将mBookingDialogFragment.dismiss();
更改为mBookingDialogFragment.dismissAllowingStateLoss();
还原您的序列。首先显示对话框,然后关闭片段。