寻找一个简单的开源非版权左缓存的安卓(SDK 7+)类。
它的主要用途是存储异步获取的Bitmap(所以我不需要将此功能包含在缓存类中)。
为此,我使用了weakList,这自然是一个糟糕的解决方案,它的Guava缓存稍好一些,但仍然不是很好。
最好是缓存能够存储任何可序列化的Object,而不仅仅是Bitmap,而且在将对象添加到缓存时,我可以很容易地清除对象中使用的某些标记。
最佳选择是获取文件系统缓存,就像包装sqlite数据库一样。如果缓存将由Settings >Manage Application > Clear Cache清除,那就太好了
发布于 2012-07-20 01:01:55
上面建议的普通LruCache是一个内存缓存。从您的问题看,您似乎正在寻找一种磁盘缓存解决方案。
请阅读缓存位图android培训文档的Disk Cache。
然后看一下在以下线程中讨论的DiskLruCache实现:Using DiskLruCache in android 4.0 does not provide for openCache method
您可以在GitHub上获取DiskLruCache源代码。
发布于 2012-07-18 10:09:36
那android.util.LruCache呢?如果您需要支持较旧的平台,只需将其复制到您的项目中。编辑:它实际上在compat/support库中。
发布于 2012-07-22 16:25:58
ICSDiskLruCache.java。这是在ICS和更高版本的Android中可用的DiskLruCache的一个端口,由谷歌开源,作为IO2012android应用程序的一部分,因此它可以与(至少) API level 7的版本一起工作。
在http://code.google.com/p/iosched/source/browse/android/src/com/google/android/apps/iosched/util/ICSDiskLruCache.java上查找来源
https://stackoverflow.com/questions/10841470
复制相似问题