SpTool -> Android系统SharedPreferences进行的封装

如要了解功能实现,请运行app程序查看控制台日志和源代码!
* 源代码 : AcmenXD/SpTool
* apk下载路径 : SpTool.apk

依赖


  • AndroidStudio
    allprojects {
            repositories {
                ...
                maven { url 'https://jitpack.io' }
            }
    }
     compile 'com.github.AcmenXD:SpTool:1.0'

功能


  • 由SpManager统一管理,操作便捷
  • 读取简单,省去操作Editor和commit步骤
  • 支持数据变更的事件监听
  • 支持自定义加密监听

配置


在Application中配置

/**
 * 初始化
 * context必须设置
 */
SpManager.setContext(this);
/**
 * 设置全局Sp实例,项目启动时创建,并通过getCommonSp拿到,项目中只有一份实例
 */
SpManager.setCommonSp(spAll);
/**
 * 设置加解密回调
 * * 不设置或null表示不进行加解密处理
 */
SpManager.setEncodeDecodeCallback(new SpEncodeDecodeCallback() {
    @Override
    public String encode(String pStr) {
        return pStr;
    }

    @Override
    public String decode(String pStr) {
        return pStr;
    }
});
/**
 * 初始化 -> 配置完成后必须调用此函数生效
 */
SpManager.init();

使用 -> 以下代码 注释很详细、很重要很重要很重要!!!


/**
 * 设置监听
 */
SpTool sp = SpManager.getSp(BaseApplication.SP_Config);
SpTool spDevice = SpManager.getSp(BaseApplication.SP_Device);
SpChangeListener sp_listener1 = sp.registerOnChangeListener(new SpChangeListener() {
    @Override
    public void onChanged(String pKey) {
        Log.e("AcmenXD", "sp_listener1发生改变:" + pKey);
    }
});
SpChangeListener sp_listener2 = sp.registerOnChangeListener(new SpChangeListener() {
    @Override
    public void onChanged(String pKey) {
        Log.e("AcmenXD", "sp_listener2发生改变:" + pKey);
    }
});
SpChangeListener spDevice_listener1 = spDevice.registerOnChangeListener(new SpChangeListener() {
    @Override
    public void onChanged(String pKey) {
        Log.e("AcmenXD", "spDevice_listener1发生改变:" + pKey);
    }
});
SpChangeListener spDevice_listener2 = spDevice.registerOnChangeListener(new SpChangeListener() {
    @Override
    public void onChanged(String pKey) {
        Log.e("AcmenXD", "spDevice_listener2发生改变:" + pKey);
    }
});
/**
 * 修改数据
 */
sp.putString("change1", "test1");
sp.putString("change1", "test2");
spDevice.putString("change2", "test1");
spDevice.putString("change2", "test2");
/**
 * 注销监听
 */
sp.unregisterOnChangeListener(sp_listener1);
//        sp.unregisterOnChangeListener(sp_listener2);
sp.unregisterOnChangeListenerAll();
spDevice.unregisterOnChangeListener(spDevice_listener1);
//        spDevice.unregisterOnChangeListener(spDevice_listener2);
spDevice.unregisterOnChangeListenerAll();
// ---------------------------------Listener End
/**
 * 初始化数据
 */
Set<String> sets = new HashSet<>();
sets.add("test1");
sets.add("test2");
/**
 * 写入数据
 */
sp.putString("string", "test string");
sp.putInt("int", 100);
sp.putFloat("float", 100.11f);
sp.putLong("long", 123456789123456789l);
sp.putBoolean("boolean", true);
sp.putStringSet("set", sets);
/**
 * 读取数据
 */
String s = sp.getString("string", "");
int i = sp.getInt("int", -1);
float f = sp.getFloat("float", -1f);
long l = sp.getLong("long", -1);
boolean b = sp.getBoolean("boolean", false);
Set<String> set = sp.getStringSet("set", new HashSet<String>());
/**
 * 读取所有数据
 */
Map<String, ?> map = sp.getAll();

gitHub : https://github.com/AcmenXD 如对您有帮助,欢迎点Star支持,谢谢~

技术博客 : http://blog.csdn.net/wxd_beijing

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值