android开发常用的缓存策略详解(3)- 缓存中的时间超过我们设定的值,将其删除
2017-12-19 11:12
537 查看
这个小编就不做过多的讲解了,还是以Universal-Image-Loader 中的LimitedAgeMemoryCache 为例进行代码的分析
提供缓存的特殊功能:如果某些缓存对象的时间超过定义值,则该对象将从缓存中删除
public class LimitedAgeMemoryCache<K, V> implements MemoryCacheAware<K, V> { private final MemoryCacheAware<K, V> cache; private final long maxAge; private final Map<K, Long> loadingDates = Collections.synchronizedMap(new HashMap<K, Long>()); /** * @param cache Wrapped memory cache * @param maxAge Max object age <b>(in seconds)</b>. If object age will exceed this value then it'll be removed from * cache on next treatment (and therefore be reloaded). */ public LimitedAgeMemoryCache(MemoryCacheAware<K, V> cache, long maxAge) { this.cache = cache; this.maxAge = maxAge * 1000; // to milliseconds } @Override public boolean put(K key, V value) { boolean putSuccesfully = cache.put(key, value); if (putSuccesfully) { loadingDates.put(key, System.currentTimeMillis()); } return putSuccesfully; } @Override public V get(K key) { Long loadingDate = loadingDates.get(key); if (loadingDate != null && System.currentTimeMillis() - loadingDate > maxAge) { cache.remove(key); loadingDates.remove(key); }//判断如果超过了预设的时间进行响应的删除 return cache.get(key); } @Override public void remove(K key) { cache.remove(key); loadingDates.remove(key); } @Override public Collection<K> keys() { return cache.keys(); } @Override public void clear() { cache.clear(); loadingDates.clear(); }
相关文章推荐
- android开发常用的缓存策略详解(1)- LRU缓存策略
- android开发--详解ListView,动态添加,删除Adapter中的数据项
- Android 软件开发之数据的 新建 储存 读取 删除 详解
- Android开发之四(十二):常用控件之时间设置(TimePickerDialog)
- Android WebView缓存策略详解
- android开发--详解ListView,动态添加,删除Adapter中的数据项
- Android 软件开发之数据的 新建 储存 读取 删除 详解(十四)
- Android开发之常用的时间格式
- Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
- Android 时间日期Widget 开发详解
- Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
- Android 软件开发之数据的 新建 储存 读取 删除 详解(十四)
- Android WebView缓存策略详解
- Android 开发中的网络下载策略 与 文件缓存策略
- Android 软件开发之数据的 新建 储存 读取 删除 详解(七)
- Android开发之四(十):常用控件之时间(TimePicker)
- Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
- Android 开发之系统应用Launcher详解,简单添加和删除快捷方式及常见问题
- Android WebView缓存策略详解
- Android 软件开发之数据的 新建 储存 读取 删除 详解(转)