在某些情况下,无法实时关闭DialogFragment

时间:2019-06-09 07:55:42

标签: android android-dialogfragment dialogfragment appcompatdialogfragment

我正在使用AppCompatDialogFragment。我的dialogFragment在某些情况下不会被关闭。

场景流程是

  1. 显示dialogFragment
  2. dialogFragment UI有一个Button。单击按钮会调用一个api,并且在api响应后,我关闭对话框并将myObject设置为null,因为我不需要该对象。
  3. 然后我显示第二个对话框,用户手动关闭该对话框
  4. 关闭第二个对话框后,用户可以与第一个dialogFragment交互(单击该按钮)

我在dialogFragment按钮上单击时崩溃,因为我以前设置为null的myObject上没有空对象引用。

dialogFragment取消呼叫后,用户可以单击按钮。因为我第一次将myObject设置为null,所以我得到了Exception。但是用户不应该第二次单击,因为我已经调用了dismiss()。

在某些情况下,我无法生成此异常及其实时发生的信息,并且已经使用崩溃日志跟踪了该情况

  

仅当用户能够第二次单击时,崩溃才会发生

为什么dialogFragment不排除某些情况?我正在使用dialogFragment.dismiss()方法进行解雇。

这是因州损失问题而发生的吗?但是我认为对于状态丢失问题,我应该获得IllegalStateException

的例外

解决方法可能是getSupportFragmentManager().executePendingTransactions()

任何人都可以解释这种情况吗?为什么会发生这种情况或如何解决这个问题。

预先感谢

0 个答案:

没有答案