当您在对话框上调用dismiss()
时,除了隐藏它之外,它是否也会将其从内存中删除?它是否从内存中删除了放置在对话框中的所有对象,如ImageViews
,Buttons
等?
有没有办法可以自己释放这些对象的内存,而不是等待垃圾收集器完成它的工作?
答案 0 :(得分:4)
答案 1 :(得分:1)
在java中,内存只能由垃圾收集器释放,你只能使所有该对象为空,以便垃圾收集器可以收集内存来释放。
你为什么需要这个? Java的全部意义在于它为您处理内存管理。你有一些明显的记忆问题吗?
答案 2 :(得分:1)
Google Android开发人员文档说:
public void dismiss(): 自:API级别1 关闭此对话框,将其从屏幕上删除。可以从任何线程安全地调用此方法。请注意,在关闭对话框时不应该覆盖此方法以进行清理,而是在onStop()中实现该方法。
答案 3 :(得分:1)
手动free
内存
在Java中不可行。您可以使用new
分配内存,但垃圾收集器负责释放它
当垃圾收集器试图在后面工作时,这是个坏主意。
dismiss()
只是隐藏了对话框。调用removeDialog(int)
删除对它的所有引用并等待GC启动。