Junior — Middle
Akými metódami je možné realizovať interakciu s DataStore v aplikácii?
sobes.tech AI
Odpoveď od AI
V Androidu je mogoče za interakcijo z DataStore uporabiti dva glavna pristopa:
-
Preferences DataStore — shranjuje pare ključ-vrednost, primeren za preproste nastavitve.
- Uporablja se prek objekta
DataStore<Preferences>. - Branje in pisanje potekata s ključi tipa
Preferences.Key<T>.
- Uporablja se prek objekta
-
Proto DataStore — shranjuje strukturirane podatke v obliki protobuf sporočil.
- Zahteva definiranje protobuf sheme.
- Omogoča shranjevanje zapletenih vrst podatkov z validacijo.
Metode interakcije:
- Branje — prek Flow, na primer
dataStore.data.map { preferences -> ... }, kar omogoča odzivanje na spremembe podatkov. - Pisanje — prek suspend funkcije
dataStore.edit { preferences -> ... }, kjer je mogoče spreminjati vrednosti.
Primer branja in pisanja z Preferences DataStore:
val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
val EXAMPLE_KEY = stringPreferencesKey("example_key")
// Pisanje
suspend fun saveExample(value: String) {
context.dataStore.edit { preferences ->
preferences[EXAMPLE_KEY] = value
}
}
// Branje
val exampleFlow: Flow<String?> = context.dataStore.data
.map { preferences ->
preferences[EXAMPLE_KEY]
}
Tako je interakcija z DataStore zasnovana na uporabi Flow za branje in suspend funkcijah za pisanje.