当前位置: 首页 > 知识库问答 >
问题:

如何正确地删除DialogFragment?

纪正德
2023-03-14

对于Dialog类中的Dismiss()方法,文档是这样说的:

取消此对话框,将其从屏幕上移除。可以从任何线程安全地调用此方法。请注意,当对话框被取消时,不应重写此方法来进行清理,而应在onstop()中实现此方法。

在我的代码中,我所做的就是调用getDialog().dismiss()来删除它。但是我没有做其他任何事情,甚至没有使用onstop()。因此,我问的是如何正确地删除DialogFragment以避免任何内存泄漏等。

共有1个答案

孙泳
2023-03-14

关闭DialogFragment的正确方法是直接在DialogFragment上使用Dismiss()

详细信息:DialogFragment状态的文档

对对话框的控制(决定何时显示、隐藏、删除它)应该通过这里的API来完成,而不是直接调用对话框。

正如您所看到的,这不仅需要关闭对话框,还需要处理进程中涉及的片段事务。

如果显式创建了任何需要手动清理的资源(关闭文件、关闭游标等),则只需要使用onstop。即使这样,我也会重写DialogFragment的onstop,而不是底层对话框的onstop

 类似资料:
  • 我在使用org.apache.commons.io.FileUtils从img目录删除文件时遇到问题。我正在使用以下代码: 实际上,该代码是用来替换img目录中已有的图像文件。我需要删除所有以前存在的文件,名称是n.*,与新文件,例如n.png。如果我试图删除图像文件,我会得到变量成功的false值,并且文件不会被删除。但不包括图像文件,例如*.abc;*.ACD;*.ACDC等被成功删除。这个问

  • 问题内容: 我正在尝试从ArrayList中删除一个对象。每个Item对象都有3个属性;1. itemNum 2.信息3.费用。我也有3个类,即1。Item类定义了存储在目录中的单个项目。2. Catalog类维护Item对象的列表。3带main方法的客户端类。我在Set类中具有设置并获取,在Catalog中具有ArrayList。在客户端中,提示我“输入要删除的itemNum。如何基于对item

  • 我有一个列表视图,我正在向其中添加一个上下文菜单。我有“工作查找”上下文菜单,但有另一个问题。 My代码,用于设置上下文菜单: 我的ListView可以通过侦听器通过文本字段进行搜索;当用户键入时,侦听器会过滤列表视图中的项目。 现在的问题是,在筛选列表时,所有空单元格现在都显示为null。 通过阅读另一个问题,我非常确信ListView仍在显示已删除单元格的图形。我知道如何通过重写updateI

  • 问题内容: 我有以下格式的json响应。 我相信json.net可以处理转义字符,因此我使用了以下代码将其反序列化为字典集合。 但是,此json解析引发异常“无效的属性标识符字符:。路径’[0]’,第1行,位置2”。我们可以通过处理json响应字符串来解决此问题吗? 问题答案: 在反序列化过程之前尝试。