Skip to content

键值存储 ...common.data.PluginKv ​

读 5 个 / 写 6 个 / 管理 3 个,全部方法:

SQLite 键值(plugin_kv 表),取代 SharedPreferences——不受 1MB 限制、事务写入、多进程稳。不要用 SharedPreferences

kotlin
import com.hualuo.zhinian.box.common.data.PluginKv

// 库名约定 = 插件包名
private const val DB = "com.zhinian.plugin.what2eat"

// 读:全部类型以字符串落库,按类型解析,失败回默认值
PluginKv.getString(context, DB, "options")          // String?,def 参数可选
PluginKv.getBoolean(context, DB, "first_run", true)
PluginKv.getInt(context, DB, "launch_count", 0)
PluginKv.getLong(context, DB, "last_ts", 0L)
PluginKv.getFloat(context, DB, "ratio", 1.0f)

// 写(put 系列全部即时生效,内部走事务)
PluginKv.put(context, DB, "options", "火锅,烧烤,麻辣烫")
PluginKv.putBoolean(context, DB, "first_run", false)
PluginKv.putInt(context, DB, "launch_count", 3)
PluginKv.putAll(context, DB, mapOf("a" to "1", "b" to null))  // 批量,null = 删

// 管理
PluginKv.remove(context, DB, "key")
PluginKv.contains(context, DB, "key"): Boolean
PluginKv.clear(context, DB)                           // 清空本插件全部键值