前言:
在上一篇文章中介绍了内存缓存,内存缓存的优点就是很快,但是它又有缺点:
- 空间小,内存缓存不可能很大;
- 内存紧张时可能被清除;
- 在应用退出时就会消失,做不到离线;
基于以上的缺点有时候又需要另外一种缓存,那就是磁盘缓存。大家应该都用过新闻客户端,很多都有离线功能,功能的实现就是磁盘缓存。
DiskLruCache:
在Android中用到的磁盘缓存大多都是基于DiskLruCache实现的,具体怎么使用呢?
1.创建一个磁盘缓存对象:public static DiskLruCache open(File directory, int appVersion, int valueCount, long maxSize);
open()方法接收四个参数,第一个参数指定的是数据的缓存地址,第二个参数指定当前应用程序的版本号,第三个参数指定同一个key可以对应多少个缓存文件,基本都是传1,第四个参数指定最多可以缓存多少字节的数据。
2.获取缓存路径:
1 | // Creates a unique subdirectory of the designated app cache directory. Tries to use external |
3.获取软件版本号:
1 | public int getAppVersion(Context context) { |
4.完整的代码如下:
1 | DiskLruCache mDiskLruCache = null; |
5.具体怎么使用上面创建的磁盘缓存如下:
1 | //添加缓存 |
总结
以上是磁盘缓存的创建和使用方法。在实际操作中内存缓存和磁盘缓存是配合起来使用的,一般先从内存缓存中读取数据,如果没有再从磁盘缓存中读取。个人水平有限,有什么问题可以留言,最好是添加我的公众号: coder_online ,我能及时的看到你的留言并给你答复。