我需要从网络缓存图像(仅5或最多100)并显示在列表视图中。如果用户选择列表视图的一行,则可以清除缓存。我看了一些例子。有些人使用外部存储。一些使用内部和外部。一些对象..
那么内部存储(http://developer.android.com/guide/topics/data/data-storage.html#filesInternal通过getCacheDir())和对象缓存(如WeakHashMap或HashMap< String,SoftReference< Drawable>)的优点/缺点是什么?
软引用的一个问题似乎是它们可能得到的速度太快(SoftReference gets garbage collected too early)。 android内部存储怎么样?参考sais“这些文件将在设备运行不足时首先被删除。”。
使用对象缓存或临时内部存储会有什么不同吗?除了对象缓存应该更快一点
答案 0 :(得分:10)
以下是两者之间的一些差异:
现在鉴于这些差异,它们并非完全相互排斥。我们实现的很多是使用多层缓存,尤其是与图像加载相关。以下是我们使用的步骤:
我们已经使多层缓存了一个共同的组件,并为我们的客户使用了它们的许多项目。这种技术几乎跟随计算机体系结构中的L1,L2缓存。
答案 1 :(得分:0)
您应该查找问题"How do I lazy download images in ListView"并且相关。