我在获取网络视频的缩略图时首次使用了缓存,
缓存其实分为三种缓存,一个是内存,本地,网络。
缓存其实不要想得那么复杂。一般情况下都是在类建个new ArrayList<a,b>(a表示key,b表示你要缓存的东西)。
然后在类里面写两个方法(1.判断没有缓存,没有就添加。2.获取缓存)
public void addToCache(String path, Bitmap bitmap) {
if (getToCache(path) == null) {
//当前地址没有缓存时,就添加
lruCache.put(path, bitmap);
}
}
public Bitmap getToCache(String path) {
return lruCache.get(path);
}
这个是类的构造方法
@SuppressLint("NewApi")
public MyLoader() {
//获取最大的运行内存
int maxMemory = (int) Runtime.getRuntime().maxMemory(); int maxSize = maxMemory / 4; lruCache = new LruCache<String, Bitmap>(maxSize) { @Override protected int sizeOf(String key, Bitmap value) { //这个方法会在每次存入缓存的时候调用
return value.getByteCount(); } }; }
有了以上的资料,剩下的都是业务逻辑问题。