MemoryCache内存缓存类讲解
使用SoftReference做的内存缓存类
文件缓存类FileCache讲解
MemoryCache内存缓存类讲解
内存缓存即把数据保存在内存中,如果缓存的数据超过设定的内存限制就删除最先缓存进来的数据。下面的MemoryCache缓存类是先创建一个Map对象(这里缓存的是Bitmap数据,所以Map的值为Bitmap),把缓存数据存入这个map对象中,想缓存数据时调用put(String id,Bitmap bitmap)方法,想从内存缓存中取数据时调用 get(String id)。
get(String id)方法的原理是先通过判断cache对象中是否包含要得到的键,如果包含就返回该键对应的值,如果不包含返回null。
put(String id,Bitmap bitmap)方法判断是否包含该键,如果包含,缓存中图片所占用的字节的值需要将该键对应的bitmap对象所占用的内存减掉,再将该bitmap加入到cache对象中,检查现在的缓存的内存值即调用checkSize方法。checkSize方法中计算内存是否超过设定的值,如果超过了,就从cache对象中移除最先缓存的对象
内存缓存类MemoryCache代码
使用SoftReference做的内存缓存类
也可以使用SoftReference,代码会简单很多,不过我们推荐使用上面的一种方法
文件缓存类FileCache讲解
文件缓存类的作用也就是把文件保存到SD卡上,下面是文件缓存类的代码FileCache.java: