|
|
package com.common.commonlib.utils
|
|
|
|
|
|
import com.common.commonlib.log.Logger.e
|
|
|
import com.tencent.mmkv.MMKV
|
|
|
|
|
|
/**
|
|
|
* MMKV的工具类
|
|
|
*
|
|
|
* @author wangym
|
|
|
* @since 2021-12-14
|
|
|
*/
|
|
|
object MMKVUtils {
|
|
|
const val TAG = "MMKVUtils"
|
|
|
|
|
|
/**
|
|
|
* 保存数据
|
|
|
* @param key 键
|
|
|
* @param value 值
|
|
|
* @param args 第一位:自定义保存ID
|
|
|
* 第二位:是否支持跨进程
|
|
|
*/
|
|
|
fun <T> put(key: String, value: T, vararg args: Any) {
|
|
|
val kv: MMKV = getKV(*args)
|
|
|
when (value) {
|
|
|
is String -> kv.putString(key, value)
|
|
|
is Boolean -> kv.putBoolean(key, value)
|
|
|
is Int -> kv.putInt(key, value)
|
|
|
is Float -> kv.putFloat(key, value)
|
|
|
is Long -> kv.putLong(key, value)
|
|
|
is ByteArray -> kv.putBytes(key, value)
|
|
|
is Set<*> -> kv.putStringSet(key, value as Set<String>)
|
|
|
else -> {
|
|
|
e(TAG, "got error value type,please check")
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
fun getByteArray(key: String, vararg args: Any): ByteArray? {
|
|
|
return getKV(*args).getBytes(key, null)
|
|
|
}
|
|
|
|
|
|
fun getBoolean(key: String, vararg args: Any): Boolean {
|
|
|
return getKV(*args).getBoolean(key, false)
|
|
|
}
|
|
|
|
|
|
fun getFloat(key: String, vararg args: Any): Float {
|
|
|
return getKV(*args).getFloat(key, 0f)
|
|
|
}
|
|
|
|
|
|
fun getInt(key: String, vararg args: Any): Int {
|
|
|
return getKV(*args).getInt(key, 0)
|
|
|
}
|
|
|
|
|
|
fun getLong(key: String, vararg args: Any): Long {
|
|
|
return getKV(*args).getLong(key, 0L)
|
|
|
}
|
|
|
|
|
|
fun getString(key: String, vararg args: Any): String? {
|
|
|
return getKV(*args).getString(key, "")
|
|
|
}
|
|
|
|
|
|
fun getStringSet(key: String, vararg args: Any): Set<String>? {
|
|
|
return getKV(*args).getStringSet(key, null)
|
|
|
}
|
|
|
|
|
|
private fun getKV(vararg args: Any): MMKV {
|
|
|
return when (args.size) {
|
|
|
1 -> MMKV.mmkvWithID(args[0] as String)
|
|
|
2 -> MMKV.mmkvWithID(args[0] as String, MMKV.MULTI_PROCESS_MODE)
|
|
|
else -> MMKV.defaultMMKV()
|
|
|
}
|
|
|
}
|
|
|
} |