Sobes.tech
Junior — Middle

Milyen módszerekkel valósítható meg az adatforrással való interakció egy alkalmazásban?

sobes.tech MI

Válasz az MI-től

Androidban a DataStore-ral való interakcióhoz két fő megközelítés használható:

  1. Preferences DataStore — kulcs-érték párokat tárol, alkalmas egyszerű beállításokra.

    • Az DataStore<Preferences> objektumon keresztül használható.
    • Olvasás és írás Preferences.Key<T> típusú kulcsok segítségével történik.
  2. Proto DataStore — strukturált adatokat tárol protobuf üzenetek formájában.

    • Megköveteli a protobuf séma meghatározását.
    • Lehetővé teszi összetett adat típusok tárolását validációval.

Interakciós módszerek:

  • Olvasás — Flow segítségével, például dataStore.data.map { preferences -> ... }, ami lehetővé teszi az adatok változásaira való reagálást.
  • Írás — suspend függvény dataStore.edit { preferences -> ... } segítségével, ahol értékeket lehet módosítani.

Példa a Preferences DataStore olvasására és írására:

val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")

val EXAMPLE_KEY = stringPreferencesKey("example_key")

// Írás
suspend fun saveExample(value: String) {
    context.dataStore.edit { preferences ->
        preferences[EXAMPLE_KEY] = value
    }
}

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

Így a DataStore-ral való interakció Flow használatán és suspend funkciókon alapul az olvasás és írás során.