用Kotlin对MMKV进行一个类封装,用到平时项目里数据缓存
时间: 2024-05-02 10:18:50 浏览: 131
MKV 封装软件
4星 · 用户满意度95%
以下是一个简单的MMKV封装类,使用Kotlin语言:
```kotlin
import com.tencent.mmkv.MMKV
class CacheManager private constructor() {
companion object {
private var instance: CacheManager? = null
fun getInstance(): CacheManager {
if (instance == null) {
synchronized(CacheManager::class) {
if (instance == null) {
instance = CacheManager()
}
}
}
return instance!!
}
}
private val mmkv: MMKV by lazy {
MMKV.defaultMMKV()
}
fun putString(key: String, value: String) {
mmkv.encode(key, value)
}
fun getString(key: String, defaultValue: String = ""): String {
return mmkv.decodeString(key, defaultValue)
}
fun putInt(key: String, value: Int) {
mmkv.encode(key, value)
}
fun getInt(key: String, defaultValue: Int = 0): Int {
return mmkv.decodeInt(key, defaultValue)
}
fun putBoolean(key: String, value: Boolean) {
mmkv.encode(key, value)
}
fun getBoolean(key: String, defaultValue: Boolean = false): Boolean {
return mmkv.decodeBool(key, defaultValue)
}
fun putFloat(key: String, value: Float) {
mmkv.encode(key, value)
}
fun getFloat(key: String, defaultValue: Float = 0f): Float {
return mmkv.decodeFloat(key, defaultValue)
}
fun putLong(key: String, value: Long) {
mmkv.encode(key, value)
}
fun getLong(key: String, defaultValue: Long = 0L): Long {
return mmkv.decodeLong(key, defaultValue)
}
fun putBytes(key: String, value: ByteArray) {
mmkv.encode(key, value)
}
fun getBytes(key: String, defaultValue: ByteArray = byteArrayOf()): ByteArray {
return mmkv.decodeBytes(key, defaultValue)
}
fun remove(key: String) {
mmkv.removeValueForKey(key)
}
fun clearAll() {
mmkv.clearAll()
}
}
```
这个类使用了单例模式,确保在应用程序范围内只有一个CacheManager实例。该类提供了一些方便的方法来存储和检索各种数据类型。您可以使用putXXX()方法将数据存储在MMKV中,并使用getXXX()方法检索它们。如果需要,可以使用remove()方法删除特定的键值对,或使用clearAll()方法删除所有数据。
阅读全文