Android系统。在对话框上调用dismiss

时间:2012-07-18 13:26:16

标签: android

当您在对话框上调用dismiss()时,除了隐藏它之外,它是否也会将其从内存中删除?它是否从内存中删除了放置在对话框中的所有对象,如ImageViewsButtons等?

有没有办法可以自己释放这些对象的内存,而不是等待垃圾收集器完成它的工作?

4 个答案:

答案 0 :(得分:4)

不,我相信dismiss()只是隐藏它。

Here is the reference

removeDialog(int)将清除状态。

答案 1 :(得分:1)

在java中,内存只能由垃圾收集器释放,你只能使所有该对象为空,以便垃圾收集器可以收集内存来释放。

你为什么需要这个? Java的全部意义在于它为您处理内存管理。你有一些明显的记忆问题吗?

答案 2 :(得分:1)

Google Android开发人员文档说:

  

public void dismiss():   自:API级别1   关闭此对话框,将其从屏幕上删除。可以从任何线程安全地调用此方法。请注意,在关闭对话框时不应该覆盖此方法以进行清理,而是在onStop()中实现该方法。

答案 3 :(得分:1)

手动free内存

  1. 在Java中不可行。您可以使用new分配内存,但垃圾收集器负责释放它

  2. 当垃圾收集器试图在后面工作时,这是个坏主意。

  3. dismiss()只是隐藏了对话框。调用removeDialog(int)删除对它的所有引用并等待GC启动。