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ó:
-
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.
- Az
-
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.