Sobes.tech
Junior — Middle

Kas saaksite selgitada, kuidas DataStore'is andmete salvestamine ja haldamine on rakendatud?

sobes.tech AI

Vastus AI-lt

Androidis on DataStore kaasaegne andmete salvestamise viis, mis asendab SharedPreferences. See põhineb Kotlin Coroutines ja Flow-l, pakkudes asünkroonset ja reaktiivset andmete haldust.

Andmete salvestamine toimub kahe peamise DataStore tüübi kaudu:

  • Preferences DataStore — salvestab võti-väärtus paare, sarnaselt SharedPreferences'ile, kuid toetab voogusid ja ei blokeeri.
  • Proto DataStore — salvestab andmeid serialiseeritud protobuf objektidena, võimaldades töötada rangelt tüübitud struktuuridega.

Andmed salvestatakse kettale faili, ja neile pääseb ligi Flow kaudu, mis võimaldab tellida muudatusi ja saada värskendusi reaalajas.

Näide Preferences DataStore kasutamisest:

val Context.dataStore by preferencesDataStore(name = "settings")

val EXAMPLE_KEY = stringPreferencesKey("example_key")

// Andmete salvestamine
suspend fun saveExample(value: String) {
    context.dataStore.edit { preferences ->
        preferences[EXAMPLE_KEY] = value
    }
}

// Andmete lugemine
val exampleFlow: Flow<String?> = context.dataStore.data
    .map { preferences ->
        preferences[EXAMPLE_KEY]
    }

Sellisel viisil tagab DataStore turvalise, asünkroonse ja reaktiivse andmete salvestamise mugava API-ga.