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