2012-07-18 60 views
4

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

有没有办法让我自己释放这些对象的内存,而不是等待垃圾收集器去做它的工作?

+0

为什么你需要那个!让系统做它想做的事 – AAnkit 2012-07-18 13:32:11

+1

我有内存泄漏...内存不足异常抛出,我需要释放尽可能多的内存,因为我可以。我不确定这个功能是干什么的。 – AndreiBogdan 2012-07-18 13:33:24

回答

4

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

Here is the reference

removeDialog(int)将清除状态。

+0

非常好,这就是我一直在寻找的。 – AndreiBogdan 2012-07-18 13:35:27

+0

您的内存泄漏可能是由其他原因引起的。如果你能缩小一点,来这里,让我们再次帮你。 – prolink007 2012-07-18 13:38:23

+0

是的,这是我的下一个职位问题。我会稍微张贴一下。 – AndreiBogdan 2012-07-18 13:39:11

1

在Java中,内存只能由垃圾收集器释放,并且只能使所有对象为空,以便垃圾收集器可以收集内存以释放内存。

为什么你需要这个? Java的全部重点在于它为您处理内存管理。你有一些明显的内存问题或什么?

+0

是的,我愿意。它经常会抛出内存异常 – AndreiBogdan 2012-07-18 13:34:14

+0

您能分享您认为会导致此问题的代码吗? – 2012-07-18 13:35:33

1

谷歌Android开发者文档说:

公共无效解雇(): 自:API等级1 关闭此对话框,从屏幕中移除。这个方法可以从任何线程安全地调用。请注意,不应该重写此方法以在对话框关闭时执行清理,而是在onStop()中执行该方法。

1

手动free荷兰国际集团的内存

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

  2. 当垃圾收集器试图在后面工作时,一个糟糕的想法。

dismiss()只是隐藏对话框。请致电removeDialog(int)删除对它的所有引用,并等待GC启动。

相关问题