如何为Android缓存数据到本地

作者: AppCode | 来源:发表于2016-12-21 17:46 被阅读341次

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

缓存思路

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

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

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

缓存方式

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

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

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

我们要说的方式

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

效果展示

1. 有网的情况下:


2. 无网的情况下:

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

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

代码

1. 获取文件名

2. 缓存数据到本地
3. 读取本地缓存

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

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

说明:

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

需要注意的问题

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

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

相关文章

  • 如何为Android缓存数据到本地

    缓存思路 如果你的数据更新的频率比较高,这时候要是缓存数据的话 ,那么 这时候的缓存数据 是有过期时间的,当然 还...

  • js 数组对象去重问题

    1、问题阐述 在做列表数据的时候,本地缓存数据数组,在请求到新数据以后需要添加到本地缓存中并显示到列表,其中比...

  • 数据缓存

    缓存的四种方式?各自应用的场景? 缓存本质将请求到的数据存储到本地,将数据显示到UI界面前先询问本地数据库是否已经...

  • android sqlite 使用详情

    sqlite android 本地数据库,用来存储少量的数据 或者 用来处理 缓存 public class Sq...

  • Android 单元测试(一)概要

    android测试的三大主体: 数据部分 各种repository,负责维护APP的数据源,包括本地缓存数据、服务...

  • 缓存架构实战-08-多级缓存架构

    三级缓存 nginx本地缓存 + redis分布式缓存 + tomcat堆缓存时效要求高的数据如库存等,redis...

  • 微信小程序:将本地缓存数据存储到云数据库,再将云数据库数据恢复到

    云函数代码,其中两个方法: 存储本地缓存数据 获取最新的本地缓存数据 将本地存储数据上传到云数据库: 先获取本地缓...

  • GreenDao使用

    Android开发中不可避免会缓存一些本地数据,改善用户体验。那存储数据就可能用到数据库。Android提供了一个...

  • 缓存

    数据库(mySQL..) 本地缓存(osCache..) 分布式缓存(redis,memchched) 数据库本地...

  • App 安全方案

    一、本地数据库加密 目前安全风险:App本地使用了Sqlite进行了本地的数据缓存,和统计分析本地数据库缓存,其中...

网友评论

本文标题:如何为Android缓存数据到本地

本文链接:https://www.haomeiwen.com/subject/yxbqvttx.html