我正在为我的 Android 应用程序实现缓存机制。
我使用SoftReference
,就像我发现的许多示例一样。问题是,当我在 中向上或向下滚动时ListView
,大部分图像已经被清除。我可以在 LogCat 中看到每次应用程序加载新图像时都会对我的应用程序进行垃圾收集。这意味着大部分不可见的图像ListView
都消失了。
因此,每次我滚动回较早的位置(我之前真正下载过图像的位置)时,我都必须再次下载图像 - 它们没有 被缓存。
我也研究过这个话题。根据本文中的 Mark Murphy 的说法,似乎存在(或曾经是?)SoftReference
. 其他一些结果表明相同的事情(或相同的结果);SoftReference
s 清理得太早了。
有没有可行的解决方案?