Android 在外部单击后警告对话框仍然附加到上下文

Android Alert Dialog still attached to Context after click outside

嗨,我有一个奇怪的问题。 我有一个 Activity 和一个带有 RecyclerView 的 Fragment。当用户单击某个项目时,我会显示一个简单的警告对话框,用户可以在其中进行一些指定。当用户在对话框中选择了某些内容时,我关闭对话框并完成 activity 以返回父级 activity。 这按预期工作,但如果用户什么都不选择并在外部单击关闭对话框并返回父级 activity,leakcanary 会告诉我该对话框仍附加到 activity 上下文。所以我的问题是如何避免这种情况? 我已经尝试自己设置 onCancel 或 onDismissListener 来关闭对话框,但这不起作用。

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setCancelable(true);

AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.setCancelable(true);
alertDialog.setCanceledOnTouchOutside(true);

这可能有效。

我通过在关闭对话框的地方添加 destroy where 方法解决了这个问题。