android - 从后台返回后尝试打开的 DialogFragment

标签 android android-dialogfragment

我正在显示一个 DialogFragment,当用户返回后台然后返回到应用程序时,会显示对话框。

有没有办法在后台返回时不显示?

我试过了(编辑:按照一些建议将其从 onStop 移至 onPause):

  @Override
  public void onPause() {
    if (dialogFragment.isVisible()) {
       dialogFragment.dismissAllowingStateLoss();
    }
    super.onPause();
  }

但是得到了这个:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.FragmentTransaction android.support.v4.app.FragmentManager.beginTransaction()' on a null object reference

有什么想法吗?

最佳答案

您可以尝试使用 dismissAllowingStateLoss()

dialogFragment.dismissAllowingStateLoss();

代替:

dialogFragment.dismiss();

但是这应该是必需的,因为您在 onStop() 中将其关闭。您应该尝试在 onPause() 中关闭它。

关于android - 从后台返回后尝试打开的 DialogFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31408240/

相关文章:

android - EndlessRecyclerViewScrollListener 不显示 recyclerview 上的所有项目

android - 仅在 ListView 顶部时刷新屏幕(Android Studio)

android - 此代码在 android 2.2 中正常工作但不适用于 android 2.3 及更高版本

android - 显示对话框时暂停 QR 码检测

android - 状态栏在全屏对话框 fragment android 中将其颜色更改为黑色

android - 在对话框 fragment 上显示 ProgressBar

java - 如何将 getDuration 放入 TextView 中?

android - MainActivity 使用leakcanary 泄露

android - 如何收听 DialogFragment 关闭事件

android - DialogFragment 中的可点击超链接