2011-03-16 54 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