【发布时间】:2019-01-07 19:51:38
【问题描述】:
在我的应用中,我使用 DialogFragments。
有时候,我会越来越
Fragment 已添加 IllegalStateException
应用程序崩溃。这些崩溃出现在 crashlytics 上。
在第一个实例关闭之前尝试两次显示相同的对话框片段时,似乎会发生此问题。
这个问题已经讨论过很多次了,比如here 或here,但问题是,它并不是在所有设备上都保持不变。
我无法在我的办公桌上重现此问题。 即使我尝试两次显示相同的对话框,我也没有收到此异常。
我什至使用fragment.isAdded() 来确保显示它,然后再次显示它。当然只是为了捕捉错误。但没有成功。
有什么想法吗?
我可以在显示对话框之前添加fragment.isAdded() 条件以防止这种情况发生,但我想了解其根本原因。我担心我无法重现这一点。
这是我显示对话框的部分代码:
MyDialog 扩展 DialogFragment
MyDialog dialog = (MyDialog) getSupportFragmentManager().findFragmentByTag(MyDialog.TAG);
if(dialog == null) { //create and show the dialog
dialog = new MyDialog();
dialog.setCancelable(false);
}
dialog.show(getSupportFragmentManager(), MyDialog.TAG);
【问题讨论】:
-
请分享代码
-
要重现这一点,您可以尝试多次按下
DialogFragments启动器按钮。
标签: android android-fragments android-dialogfragment dialogfragment