Junior — Middle
Welke methoden kunnen worden gebruikt om interactie met DataStore in een applicatie te implementeren?
sobes.tech AI
Antwoord van AI
In Android, om interactie met DataStore, kunnen twee hoofdbenaderingen worden gebruikt:
-
Preferences DataStore — slaat sleutel-waardeparen op, geschikt voor eenvoudige instellingen.
- Wordt gebruikt via het object
DataStore<Preferences>. - Lezen en schrijven gebeurt met behulp van sleutels van het type
Preferences.Key<T>.
- Wordt gebruikt via het object
-
Proto DataStore — slaat gestructureerde gegevens op in de vorm van protobuf-berichten.
- Vereist het definiëren van een protobuf-schema.
- Maakt het mogelijk om complexe datatypes met validatie op te slaan.
Interactie methoden:
- Lezen — via Flow, bijvoorbeeld
dataStore.data.map { preferences -> ... }, wat het mogelijk maakt om te reageren op dataveranderingen. - Schrijven — via de suspend-functie
dataStore.edit { preferences -> ... }, waarin waarden kunnen worden gewijzigd.
Voorbeeld van lezen en schrijven met Preferences DataStore:
val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
val EXAMPLE_KEY = stringPreferencesKey("example_key")
// Schrijven
suspend fun saveExample(value: String) {
context.dataStore.edit { preferences ->
preferences[EXAMPLE_KEY] = value
}
}
// Lezen
val exampleFlow: Flow<String?> = context.dataStore.data
.map { preferences ->
preferences[EXAMPLE_KEY]
}
Op deze manier is de interactie met DataStore gebaseerd op het gebruik van Flow voor het lezen en suspend-functies voor het schrijven.