使用缓存框架 ASimpleCache和SharePreferences进行数据储存

先介绍下缓存框架ASimpleCache

ASimpleCache 是一个为android制定的 轻量级的 开源缓存框架。轻量到只有一个java文件(由十几个类精简而来)。
1、可以缓存什么
普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java对象,和 byte数据。
2、有何优点?
1:轻,轻到只有一个JAVA文件。
2:可配置,可以配置缓存路径,缓存大小,缓存数量等。
3:可以设置缓存超时时间,缓存超时自动失效,并被删除。
4:支持多进程。
3、使用场景?
1、替换SharePreference当做配置文件
2、可以缓存网络请求数据,比如oschina的android客户端可以缓存http请求的新闻内容,缓存时间假设为1个小时,超时后自动失效,让客户端重新请求新的数据,减少客户端流量,同时减少服务器并发量。
4、如何使用

/* 新建ACache对象,保存数据(键值和数据类型) */
    ACache aCache = ACache.get(this);
    aCache.put("ACache", "我是achche数据缓存");
    // 保存10秒,如果超过10秒去获取这个key,将为null
    aCache.put("ACacheTime", "我是achche数据缓存", 10);
/* 新建ACache对象,根据键值获取数据 */
    ACache aCache = ACache.get(this);
    String asString = aCache.getAsString("ACache");

DEMO效果如下:
这里写图片描述

以上大概介绍了缓存框架ASimple Cached
接下来介绍SharePreference的使用

Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下
/* 新建sp对象,保存数据(键值和数据类型) */
    SharedPreferences sp = getSharedPreferences("sp", Context.MODE_PRIVATE);
    Editor edit = sp.edit();//获得编辑器
    edit.putString("sp", "我是sp数据缓存");
    edit.commit();//一定记得提交
该xml中生成的内容代码如下
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="sp">我是sp数据缓存</string>
</map>

获取数据

/* 新建sp对象,根据键值获取数据 */
        SharedPreferences sp = getSharedPreferences("sp", Context.MODE_PRIVATE);
        String string = sp.getString("sp", "该参数为默认值");

发现两种写法很像,sp是把数据保存在xml中,然后再去读取,两者都可以跨进程,但是sp跨进程要注意文件的权限。在getSharePreferences(指定该文件的名称,指定该文件的操作模式)方法中参数二有四种模式
四种操作模式分别为:
1. MODE_APPEND: 追加方式存储
2. MODE_PRIVATE: 私有方式存储,其他应用无法访问
3. MODE_WORLD_READABLE: 表示当前文件可以被其他应用读取
4. MODE_WORLD_WRITEABLE: 表示当前文件可以被其他应用写入
5. MODE_MULTI_PROCESS: 适用于多进程访问(目前已被废弃,google官方推荐使用ContentProvider来实现进程间共享访问)
也就是说如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
那要怎么删除通过SharedPreferences产生的文件,可以通过以下方法:

File file= new File("/data/data/"+getPackageName().toString()+"/shared_prefs","sp.xml");//这里sp为xml文件名

if(file.exists())
{
file.delete(); 
Toast.makeText(TestActivity.this, "删除成功",Toast.LENGTH_LONG).show();
 }

两者的大致使用就是这样,后面如果有
更深层次的东西我会写出来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值