2010-09-26 74 views
0

許多人都這麼做,我使用Map和SoftReference來創建圖像緩存來緩存下載的圖像。關於Android上圖像緩存的問題

在我的實現中,最新使用的位圖將被放置在Map的第一個元素上,因此,當圖像緩存達到最大緩存大小時,長期不使用的Map的最後一個元素將被移除, SoftReference確保位圖將被回收。

下面是問題:我怎樣才能確定被刪除的位圖在回收時未被使用(比如,在屏幕上等等)。如果正在使用位圖,將SoftReference gc嗎?在the api doc中很難理解「可達性」的含義。

在此先感謝!

回答

1

如果它被緩存SoftReference以外的其他東西使用,那麼它肯定會與硬引用(即任何變量或類成員)一起使用。然後GC不會回收它。

+0

啊,我明白了,非常感謝! – Tony 2010-09-27 14:46:14