android – 如何在onstop()中安全地解除DialogFragment?

我需要在FragmentActivity的onStop()中解除DialogFragment,如果它正在显示,这就是我做的
if(mAlertDlg != null && mAlertDlg.getDialog() != null)
        mAlertDlg.dismiss();

但我通常得到IllegalStateException.那么请告诉我为什么代码错误以及在onStop()中解除DialogFragment的正确方法是什么?谢谢.

解决方法

您应该使用dialogFragment.dismissAllowingStateLoss().正如文档所述的commitAllowingStateLoss():

“Like commit() but allows the commit to be executed after an
activity’s state is saved. This is dangerous because the commit can be
lost if the activity needs to later be restored from its state,so
this should only be used for cases where it is okay for the UI state
to change unexpectedly on the user.”

所以对于dismissAllowingStateLoss()是同样的方法.

相关文章

Android 通过adb shell命令查看内存,CPU,启动时间,电量等...
Monkey Android app稳定性测试工具之Monkey使用教程 by:授客...
Android 常见adb命令 by:授客 QQ:1033553122 1、 查看所有已...
这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...