2011-03-16 55 views
1

我們經常從服務器獲取圖像作爲字節流,然後創建位圖並將其分配給ImageView對象。Android位圖回收問題,我是否需要維護位圖的所有引用,以調用回收方法?

當我需要釋放內存時,我可以將所有ImageView引用刪除爲null,讓gc完成工作。

但問題是,這樣,我沒有調用位圖的回收方法,因爲我沒有保留它的引用。所以我想知道,我是否需要維護所有Bitmap的引用,以便將來回收它們?

回答

4

不,你不需要,GC會爲你做。

+0

對不起之前,但如果你所說的,爲什麼會有一個回收方法?我可以簡單地將引用放到null並讓GC回收它。 – Lyn 2011-03-16 05:59:28

+1

如果您經常操縱較大的位圖,並且需要儘快釋放內存,recycle()就在這裏。在正常的應用程序中,這在大多數情況下是不必要的。 – 2011-03-16 17:08:31

+0

@RomainGuy但位圖分配在本機堆中,GC如何獲取它們? – 2012-06-14 22:07:04

0

最好這樣做,因爲Bitmap對象本身不適合GC(因爲內存分配在本機堆中)。

你也應該回收您的ImageView的位圖,採用新的

Recycle ImageView's Bitmap