如何为Android缓存数据到本地

《如何为Android缓存数据到本地》

对于一个应用来说,有许多的数据是不需要实时访问网络的,或者在用户第二次打开应用的时候 ,访问网络可能不是特别的快 ,但是此时的应用是没有数据展示的,这时候就会涉及到 数据的缓存,数据的缓存 可以提高用户的体验 也可以 为用户节省不必要的流量。

缓存思路

  1. 如果你的数据更新的频率比较高,这时候要是缓存数据的话 ,那么 这时候的缓存数据 是有过期时间的,当然 还得看你怎么做缓存,如果 你是仅仅只是先访问网络之后 在替换缓存数据的话 ,这时候缓存就不会有什么过期的时间,这时候的缓存只是为了 在没有网络的情况下 ,用户也可以看到上一次的数据。

  2. 如果你的数据 更新的频率不是很高的话 ,这时候 你也可以设置缓存的过期时间,也可以不用设置,比如说 访问网络后直接替换掉上一次的缓存数据。

  3. 需要缓存的数据 有基本的数据 还有图片或者视频,今天只说 基本数据的缓存。

缓存方式

  1. 数据库
    数据库一般缓存的是关系型比较强的数据,比如联系人等数据

  2. 文件
    文件一般可以缓存任何你想缓存的数据

  3. xml/sp(SharedPreferences)
    这种方式主要缓存一些应用的配置信息

我们要说的方式

我在做缓存时一般采用的是 文件

效果展示

1. 有网的情况下:

《如何为Android缓存数据到本地》

2. 无网的情况下:

《如何为Android缓存数据到本地》

那么缓存到底应该怎么做呢? 下面 我就讲一下我自己做缓存的案例

缓存到底要缓存些什么呢?其实缓存要么缓存的是你从服务器拿到的json数据,要么缓存的是你解析json后得到的集合或者对象,也就是说,等你访问网络成功后,解析完json数据后,把你得到的集合或者对象用文件的形式存到本地。
比如:你从服务器拿到json数据后解析完之后得到的集合是ArrayList<SubjectInfo> mData = new ArrayList<>()
,SubjectInfo是一个对象,那么这时候 你要做的就是把 mData集合用文件的形式存到本地去, 怎么存呢?看代码

代码

1. 获取文件名

《如何为Android缓存数据到本地》

2. 缓存数据到本地

《如何为Android缓存数据到本地》 3. 读取本地缓存

《如何为Android缓存数据到本地》

保存数据调用 CacheData.saveAllSubList(PrefHelperUtils.getInstance().getUserUid(), studentId, mData);这样就可以将mData用文件的形式写到本地

从本地获取数据调用 ListallSubList=CacheData.getAllSubList(PrefHelperUtils.getInstance().getUserUid(), studentId);
这样就可拿到保存到本地的集合;

说明:

PrefHelperUtils.getInstance().getUserUid()是用户的id,我是用sp保存到本地的;

需要注意的问题

如果有对象的话 那么这个对象必须实现Serializable接口,不然 不能成功!

欢迎长按下图 -> 识别图中二维码或者扫一扫关注我们的公众号:

《如何为Android缓存数据到本地》

    原文作者:AppCode
    原文地址: https://www.jianshu.com/p/b8f01493d3f5
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞