android第三方框架

玩一玩MMKV存储利器(Android篇)

2021-05-27  本文已影响0人  邓立_全栈UncleLi

使用原因:SharedPreferences多线程取值失效,有位熊兄弟推荐使用香飘飘MMKV存储利器,不香赔钱。然而我抱着赔钱的心态玩了一下,真香!!

MMKV优势

那就开始玩耍吧~~~

添加依赖

build.gradle加上依赖,具体版本可访问github项目网址:https://github.com/Tencent/MMKV

dependencies {
    implementation 'com.tencent:mmkv-static:1.2.8'
}

初始化MMKV

可在onCreate初始化MMKV

@Override
public void onCreate() {
    super.onCreate();
    MMKV.initialize(this);
}

真香使用

import com.tencent.mmkv.MMKV;

// 创建默认实例
MMKV kv = MMKV.defaultMMKV();

// 创建自己的实例
// param1:库的key
// param2:库的模式(多进程或单进程)
MMKV kv2 = MMKV.mmkvWithID("test", MMKV.MULTI_PROCESS_MODE);

// set值 布尔值
kv.encode("bool", true);
// get值 布尔值
boolean bValue = kv.decodeBool("bool");

// set值 整形
kv.encode("int", Integer.MIN_VALUE);
// get值 整形
int iValue = kv.decodeInt("int");

// set值 字符串
kv.encode("string", "Hello from mmkv");
// get值 字符串
String str = kv.decodeString("string");

// set值 float
kv.encode("float",30f);
// get值 float
float floatValue = kv.decodeFloat("float");

// set值bytes
kv.encode("bytes", bytes);
// get值bytes
byte[] b = kv.decodeBytes("bytes");

// set值double
kv.encode("double", Double.MIN_VALUE);
// get值double
Double d = kv.decodeDouble("double");

// set值long
kv.encode("long", Long.MAX_VALUE);
// get值long
Long l = kv.decodeLong("long");

// set值 set集合
kv.encode("set", new HashSet<String>(2) {{
    add("1");
    add("2");
}});
// get值 set集合
Set<String> set =  kv.decodeStringSet("1");

// 获取所有keys
String[] strArray = kv.allKeys();

// 获取kv总数
long lo = kv.totalSize();

// 是否存在key
boolean hasBool = kv.containsKey("bool");

// 删除单个
kv.removeValueForKey("test");

// 删除多个
kv.removeValuesForKeys(new String[]{"test1", "test2"});

// 删除缓存值,后续调用将从磁盘中加载所有键值
kv.clearMemoryCache();

// 删除所有数据
// 底层调用clearAl()
kv.clearAll();

// 删除所有数据
// 删除磁盘中加载所有键值
kv.clearAll();

iOS 篇请跳转此地址:https://www.jianshu.com/p/57734e33da8d

上一篇下一篇

猜你喜欢

热点阅读