我正在使用 BottomsheetDialogFragment,最近收到了关于 crashlytics 的崩溃报告,堆栈跟踪是 -
Fatal Exception: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:2044) at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:2067) at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:680) at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:634) at android.support.v4.app.DialogFragment.dismissInternal(DialogFragment.java:205) at android.support.v4.app.DialogFragment.dismiss(DialogFragment.java:171) at com.khaalijeb.inkdrops.ListBanks.onSuccessResponse(ListBanks.java:322) at com.khaalijeb.inkdrops.App.onSuccessResponse(App.java:800) at com.olive.upi.OliveUpiManager.onSuccessResponse(Unknown Source:970) at com.olive.upi.transport.d$33.onResponse(Unknown Source:16) at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68) at android.os.Handler.handleCallback(Handler.java:789) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:169) at android.app.ActivityThread.main(ActivityThread.java:6595) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
我不知道是什么导致了这个错误,因为它没有在某些设备上发生,而不是在所有设备上发生。有人之前遇到过这个问题以及如何克服它吗?
我已经测试了这个特定的代码 1000 次,但从未测试过,但在生产环境中,我在大约 2-3 台设备上遇到了这个错误。
如何调用commitAllowingStateLoss();?这能解决问题吗?
最佳答案
有 BottomsheetDialogFragment#dismissAllowingStateLoss
method在 Material 库中,您可以解决这个问题
关于android - 在 onSaveInstanceState 之后无法使用 BottomsheetDialogFragment 执行此操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54147965/