【发布时间】:2021-06-02 14:06:07
【问题描述】:
所以在新的 alpha07 版本中,Android 放弃了 private val dataStore = context.createDataStore(name = "settings_pref"),但是他们使用数据存储的新方式对我不起作用。
自从从“androidx.datastore:datastore-core:1.0.0-alpha06”升级到 alpha07 后,我似乎无法在没有红色代码的情况下使我的数据存储语法正常工作(当我添加上下文时出现错误。数据存储。编辑)。同样降级回 alpha06,以前工作的代码现在不再工作(使用 createDataStore)。
我使用的是他们在main page 上的示例,但除了这个之外,他们仍然没有更新他们的示例。
@Singleton
class PreferencesManager @Inject constructor(@ApplicationContext context: Context) {
val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
val EXAMPLE_COUNTER = intPreferencesKey("example_counter")
val exampleCounterFlow: Flow<Int> = context.dataStore.data
.map { preferences ->
// No type safety.
preferences[EXAMPLE_COUNTER] ?: 0
}
suspend fun incrementCounter() {
context.dataStore.edit { settings ->
val currentCounterValue = settings[EXAMPLE_COUNTER] ?: 0
settings[EXAMPLE_COUNTER] = currentCounterValue + 1
}
}
}
如果有人知道问题(或我的错误),我将不胜感激。
【问题讨论】:
-
那么什么不起作用?
-
+1 现在也登陆了,如果有人知道这个问题,为了清楚起见附上图片@ianhanniballake prnt.sc/10cqim3
-
@ianhanniballake 基本上是 Abhishek-an 所展示的内容,上下文、数据存储或编辑都显示为未解决的参考。
标签: android android-studio datastore android-jetpack-datastore