12

i've been using jetpack datastore for a while, but then i got a problem. I want to clear data in datastore when the app is destroyed. Im using jetpack datastore to persist data only in form

i've searched that sharedPreferences has a clear() function, is there a similar function for Jetpack Datastore ? and how can i use it ?

i found clear function in datastore documentation but there is no explanation on how to use it

4

5 回答 5

19

In case anyone wants to know how to remove a specific preference

context.dataStore.edit {
    it.remove(key)
}
于 2021-03-22T13:10:51.240 回答
18

Use this

dataStore.edit { 
        it.clear()
    }

Method description states

Removes all preferences from this MutablePreferences.

于 2020-11-16T03:52:50.767 回答
6

Try this (for Proto DataStore):

 dataStore.updateData { obj ->
    obj.toBuilder()
        .clear()
        .build()
 }
于 2020-11-24T19:06:54.357 回答
2

If you want to delete a specific key then try this

dataStore.edit {
        if (it.contains(key)) {
            it.remove(key)
        }
    } 
于 2021-02-28T11:48:12.780 回答
1

For Proto DataStore you can do:

dataStore.updateData { it.getDefaultInstance() }

It doesn't delete the file, but it's effectively the same.

于 2020-11-20T20:31:24.480 回答