这是大一在做实训时候用到过的,那时候要做一个新闻app,从新浪获取信息,在缓存时候用到了,现在想起,就记下来:
Lrucache:
LruCache是一套内存缓存的解决方案,算法基于lru 。
LRU:Least Recently Used(近期最少使用)。LruCache基于LRU算法的缓存策略。他是基于linkedhashmap的,即将信息存储在linkedhashmap之中,以强引用的方式存储在内存中,并且把最近最少使用的对象在缓存值达到预设定值之前从内存中移除。
假设你最近在玩王者荣耀,很少玩天天酷跑,当你的lrucache溢出的时候,手机就会回收天天酷跑,这就是LRU;
我的个人理解是:LruCache可以避免对象被回收。当一个对象被访问时,将会被移到缓存队列的头部;当一个对象添加到已经满的队列时,队列的尾部对象的对象将被踢出队列,意味着允许被垃圾回收器所回收。就像切换app时候,当你从qq切换到天天动听再切换到王者荣耀再切换到uc,切换到qq的时候,qq必须重新加载,而如果qq使用了lrucache,那么需要重新加载的是天天动听。而qq则在activity栈中被保存了下来
lrucache是在至少需要api12才可以使用,所以一般都是使用它的v4jar包:android.support.v4.util.LruCache;
lrucache有四个比较常用的方法:
构造方法:在使用时,需要确定一个最大值
cachesize需要根据实际情况去操作,不一定要确定一个整数值
存放方法:
获取方法:
移除方法:
很多情况下,lrucache都是用来操作图片的,现在给出一个操作图片的例子,先上用到的图片:
这是获取成功时候的图片:
这是失败的图片:
接着是代码:
最后肯定是成功的显示出来了,大家也可以去试试
用简单的示例,学会一个未知的新知识,如果有不足,请各位不要吝啬