android 怎么做数据缓存

android 怎么做数据缓存,第1张

二级缓存工作机制

所谓二级缓存实际上并不复杂,当Android端需要获得数据时比如获取网络中的图片,我们首先从内存中查找(按键查找),内存中没有的再从磁盘文件或sqlite中去查找,若磁盘中也没有才通过网络获取;当获得来自网络的数据,就以key-value对的方式先缓存到内存(一级缓存),同时缓存到文件或sqlite中(二级缓存)。注意:内存缓存会造成堆内存泄露,所有一级缓存通常要严格控制缓存的大小,一般控制在系统内存的1/4。

理解了二级缓存大家可能会有个问题网络中的数据是变化的,数据一旦放入缓存中,再取该数据就是从缓存中获得,这样岂不是不能体现数据的变化?我们在缓存数据时会设置有效时间,比如说30分钟,若超过这个时间数据就失效并释放空间,然后重新请求网络中的数据。有的童鞋就问30分钟内咋办?那好吧,我也没招了,只有下拉刷新了, 实际上这不是问题。

二级缓存的实现

如何实现二级缓存,有很多技术方案,在这里我们使用 ASimpleCache框架来给大家演示一下,通过名字就可以看出它是很容易实现的。

1、ACache介绍

ASimpleCache是一个轻量级的开源cache框架,实际上就是一个叫ACache的java类。已经在商业项目中使用,运行效果不错。

2、ACache使用

我们先做一个实现数据缓存的案例,然后再归纳一下主要的方法

编写NewsListActivity主要代码如下:

创建ACache组件

ACache acache=ACache.get(context)

ACache acache=ACache.get(context,max_size,max_count)

参数说明:

max_size:设置限制缓存大小,默认为50M

max_count:设置缓存数据的数量,默认不限制

设置缓存数据

acache.put(key,data,time)或acache.put(key,data)

将数据同时上存入一级缓存(内存Map)和二级缓存(文件)中

参数说明:

Key:为存入缓存的数据设置唯一标识,取数据时就根据key来获得的

Data:要存入的数据,acache支持的数据类型如图所示:

有String、可序列化的对象、字节数组、Drawable等Time:设置缓存数据的有效时间,单位秒

从缓存中取数据

提供一系列getAsXXX()方法,如图所示。

根据不同存入数据,调用不同的方法取数据

若是使用的vivo手机,可参考以下设置应用限额的方法:

方法一:进入i管家--(实用工具)--健康使用设备--应用限额--添加限额--选择应用--下一步--设置限额--设置时间--完成即可;

方法二:进入设置--健康使用设备--应用限额--添加限额--选择应用--下一步--设置限额--设置时间--完成即可。

若有更多疑问,可进入此链接网页链接咨询在线客服了解详情。

1、找到手机上的pptv软件。

2、打开后,点击右下角“我的”按钮。

3、在下一页面选择设置。

4、在设置页面会看到,默认缓存位置为手机。

5、选择缓存位置为SD卡,会d出对话框,点击确认。

6、设置就成功了,以后缓存就会存储在SD卡了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12002572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存