Sobes.tech
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:

  1. 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>.
  2. 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.