关于Android上图像缓存的问题

时间:2010-09-26 15:02:18

标签: android image caching

正如很多人所做的那样,我使用Map和SoftReference创建图像缓存来缓存下载的图像。

在我的实现中,最新使用的位图将被放置在Map的第一个元素上,因此,当图像缓存达到最大缓存大小时,将删除长时间未使用的Map的最后一个元素,并且SoftReference确保位图将被回收。

问题在于:如何在回收时确保删除的位图没有被使用(例如,在屏幕上绘图等)。如果正在使用位图,请问SoftReference gc吗?很难理解“可达性”在the api doc中的意义。

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果它被缓存SoftReference之外的其他东西使用,那么它当然与硬引用(即任何变量或类成员)一起使用。然后GC不会回收它。