zoukankan      html  css  js  c++  java
  • Android 中替代 sharedpreferences 工具类的实现

    Android 中替代 sharedpreferences 工具类的实现

    背景

    想必大家一定用过 sharedpreferences 吧!就我个人而言,特别讨厌每次 put 完数据还要 commit。对 我就是这么懒!哈哈。另外,sharedpreferences 不能存类,集合和bitmap等数据!这点也让人非常不爽啊!所以,我就在这个美好的星期天撸了名为 SHARE 的工具类用来替代 sharedpreferences。


    项目介绍

    整体架构

    先来看一下,整体架构图(画的不好请大家见谅):

    图片

    从图中,我们可以了解到,当我们 put 数据的时候,我们同时存入到 内存和和sd卡中。读取的时候,优先从内存中获取,如果内存中没有,则从sd中获取。如果两者都没有,则使用用户自己设置的默认值!

    代码介绍

    下来看一下代码目录结构:
    图片

    • DiskLruCache:硬盘缓存的解决方案(非Google官方编写,但获得官方认证。地址)
    • Cache:接口。抽象了对数据的操作
    • MemoryCache:内存缓存,实现了Cache接口
    • DiskCache:硬盘缓存,同样实现了Cache接口
    • Share:这个类就是我们使用的!他主要是提供了 put 和 get两种方法!其实就是对 MemoryCache 和 DiskCache 两个类的操作!

    使用

    在 Application中初始化:

    @Override
    public void onCreate() {
        super.onCreate();
        File file = new File(Environment.getExternalStorageDirectory().toString() + File.separator + "sample");
        if (!file.exists()) {
            file.mkdirs();
        }
        Share.init("CACHE", 10 * 1024, file.toString());
    }
    

    之后,你就可以任意的使用它了!

        //设置字符串
        Share.putString("str", "你好啊");
        //设置int
        Share.putInt("int", 1);
        //设置boolean
        Share.putBoolean("boolean", true);
        //设置double
        Share.putDouble("double", 2.1d);
        //设置long
        Share.putLong("long", 20000);
        //设置flot
        Share.putFloat("float", 2.2f);
        //设置类
        Share.putObject("obj", people);
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.dd);
        //设置bitmap
        Share.putBitmap("bitmap", bitmap);
        //设置集合
        Share.putObject("list", items);
    

        //得到字符串
        String str=Share.getString("str");
        //得到double
        double dd=Share.getDouble("double", 0.0d);
        //得到int
        int value=Share.getInt("int", 0);
        //得到float
        float ff=Share.getFloat("float", 0.0f);
        //得到bitmap
        Bitmap map=Share.getBitmap("bitmap");
        //得到集合
        List<String> copy= (List<String>) Share.getObject("list");
        .....
    

    使用就是如此简单!

    近期要完成的新功能

    1.对泛型的支持.


    项目地址

    希望这个项目对大家有用。也希望多 star .同时也能多多提出修改意见!不管是对项目本身还是代码!!!!

  • 相关阅读:
    MSDN Visual系列:利用关联来过滤MOSS中的BDC数据
    SharePoint2007中开箱即用的权限(策略)级别
    SharePoint命令提示符
    使自定义的aspx页面仅用于部分SharePoint站点
    SharePoint 2010 中的站点模板(Site Templates)
    MSDN Visual系列:MOSS企业级搜索之三——创建和使用搜索范围
    推荐《Office SharePoint Server 2007案例实战开发》
    MSDN Visual系列:MOSS企业级搜索之四——创建内容源用于爬网业务数据
    通过主机标头实现多个SharePoint Web应用程序共用一个端口
    MSDN Visual系列:在MOSS中创建一个BDC实体
  • 原文地址:https://www.cnblogs.com/likeandroid/p/4526087.html
Copyright © 2011-2022 走看看