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

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

概述我需要在FragmentActivity的onStop()中解除DialogFragment,如果它正在显示,这就是我做的 if(mAlertDlg != null && mAlertDlg.getDialog() != null) mAlertDlg.dismiss(); 但我通常得到IllegalStateException.那么请告诉我为什么代码错误以及在onStop()中解 我需要在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 – 如何在onstop()中安全地解除DialogFragment?全部内容,希望文章能够帮你解决android – 如何在onstop()中安全地解除DialogFragment?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1138512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存