我正在使用一个AppCompatDialogFragment
. 在某些情况下,我的 dialogFragment 不会被解雇。
场景流程是
- 显示对话框片段
- dialogFragment UI 有一个 Button.In 按钮单击调用 api,在 api 响应后我关闭对话框并将 myObject 设置为 null,因为我不需要该对象。
- 然后我显示第二个对话框,用户手动关闭此对话框
- 关闭第二个对话框后,用户可以与第一个 dialogFragment 交互(单击该按钮)
我在我之前设置为 null 的 myObject 上单击以获取 null 对象引用的 dialogFragment 按钮崩溃。
用户可以在 dialogFragment 关闭调用后单击按钮。因为我第一次将 myObject 设置为空,所以我得到了异常。但是用户不应该第二次单击,因为我调用了dismiss()。
在某些情况下,我无法生成此异常及其实时发生,并且我已经使用崩溃日志跟踪了该场景
仅当用户能够第二次单击时才会发生崩溃
为什么 dialogFragment 不排除某些情况?我正在使用dialogFragment.dismiss()
解雇方法。
这是否发生在状态损失问题上?但我认为对于状态损失问题,我应该得到一个例外IllegalStateException
一种解决方法可能是getSupportFragmentManager().executePendingTransactions()
.
任何人都可以解释这个场景吗?为什么会发生这种情况或如何解决这个问题。
提前致谢