2012-07-18 126 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啓動。

相關問題