Google 为 DataStore 的多进程版本提供的示例仅包含设置中的一个字段:
data class Settings(
val lastUpdate: Long
)
那么更新代码是:
scope.launch {
dataStore.updateData {
Settings(lastUpdate = System.currentTimeMillis())
}
}
但是,这只适用于我有一个字段的情况。 当我有两个字段时会发生什么? 比如我的设置:
数据类设置(
val bypassEnabled: Boolean,
val clientMode: ProvisionClientMode
)
它不会让我这样做:
datastore.updateData {Settings(clientMode = ProvisionClientMode.ACTIVE_MODE) }
因为它需要所有字段的值。
我可以进行“读取”并通过更改来克隆它,但这似乎是错误的。
我在这里遗漏了什么吗?
dataStore.updateData { currentSettings ->
currentSettings.copy(clientMode = ProvisionClientMode.ACTIVE_MODE)
}
我觉得可以通过复制现有的来解决。