0

我正在使用一个AppCompatDialogFragment. 在某些情况下,我的 dialogFragment 不会被解雇。

场景流程是

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

我在我之前设置为 null 的 myObject 上单击以获取 null 对象引用的 dialogFragment 按钮崩溃。

用户可以在 dialogFragment 关闭调用后单击按钮。因为我第一次将 myObject 设置为空,所以我得到了异常。但是用户不应该第二次单击,因为我调用了dismiss()。

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

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

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

这是否发生在状态损失问题上?但我认为对于状态损失问题,我应该得到一个例外IllegalStateException

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

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

提前致谢

4

0 回答 0