如何在特定情况下清除jetpack数据存储数据

问题描述 投票:0回答:5

我使用jetpack数据存储已经有一段时间了,但后来我遇到了问题。 我想在应用程序被销毁时清除数据存储中的数据。 我使用 jetpack 数据存储仅以表单形式保存数据

我搜索到sharedPreferences有一个clear()函数,Jetpack Datastore有类似的函数吗?我该如何使用它?

我发现了明确的功能 数据存储文档但没有解释如何使用它

android kotlin android-jetpack android-jetpack-datastore
5个回答
52
投票

用这个

dataStore.edit { 
        it.clear()
    }

方法描述说明

从此 MutablePreferences 中删除所有首选项。

对于原型数据存储(感谢 Amir Raza 的评论)

datastore.updateData { 
    it.toBuilder().clear().build()
}

45
投票

如果有人想知道如何删除特定偏好

context.dataStore.edit {
    it.remove(key)
}

7
投票

尝试这个(对于 Proto DataStore):

 dataStore.updateData { obj ->
    obj.toBuilder()
        .clear()
        .build()
 }

6
投票

如果您想删除特定键,请尝试此操作

dataStore.edit {
        if (it.contains(key)) {
            it.remove(key)
        }
    } 

1
投票

对于 Proto DataStore,您可以执行以下操作:

dataStore.updateData { it.getDefaultInstance() }

它不会删除文件,但实际上是一样的。

© www.soinside.com 2019 - 2024. All rights reserved.