堆栈跟踪java.lang.IllegalStateException:onSaveInstanceState之后无法执行此操作

问题描述 投票:0回答:2

我正在使用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();
android dialog actionbarsherlock
2个回答
16
投票

朋友,谢谢您的评论和回答。我解决了这个问题。

mBookingDialogFragment.dismiss();更改为mBookingDialogFragment.dismissAllowingStateLoss();


0
投票

还原您的序列。首先显示对话框,然后关闭片段。

© www.soinside.com 2019 - 2024. All rights reserved.