DataStoreKit使用说明 - SheTieJun/BaseKit GitHub Wiki

DataStoreKit

tip: 更新的时候是全量的,所以如果数据是大量的情况下,请不要使用这个保存数据,大量数据就应该是使用数据库

基于:

'androidx.datastore:datastore-preferences:1.0.0'

创建

private val dataStoreKit by lazy { context.dataStoreKit() }

保存

launch {
    dataStoreKit.save(key = "int", 100)
}

获取

持续获取值,默认null

launch {
    dataStoreKit.get<Int>(key = "int")
        .onEach {
            it.toString()
        }
        .collect()
}

持续获取值,需要设置默认值,不可以null

launch {
    dataStoreKit.get(key = "int", 1)
        .onEach {
            it.toString() 
        }
        .collect()
}

只获取一次

launch {
    dataStoreKit.getFirst(key = "int", 1).toString()
}

移除单个key的值

launch {
    dataStoreKit.remove<Int>(key = "int") 
}

清空

launch {
    dataStoreKit.clear()
}

直接转成LiveDate

defDataStore.get("table_split", defaultValue = false).asLiveData()

阻塞调用【非常规调用】

dataStoreKit.clearBlock()
dataStoreKit.getFirstBlock("int", -1)
dataStoreKit.saveBlock("int",i++)
⚠️ **GitHub.com Fallback** ⚠️