Junior — Middle
Какви методи могат да се използват за реализиране на взаимодействие с DataStore в приложение?
sobes.tech AI
Отговор от AI
В Android за взаимодействие с DataStore могат да се използват два основни подхода:
-
Preferences DataStore — съхранява двойки ключ-стойност, подходящ за прости настройки.
- Използва се чрез обекта
DataStore<Preferences>. - Четенето и записването става чрез ключове от тип
Preferences.Key<T>.
- Използва се чрез обекта
-
Proto DataStore — съхранява структурирани данни под формата на protobuf съобщения.
- Изисква дефиниране на protobuf схема.
- Позволява съхраняване на сложни типове данни с валидация.
Методи за взаимодействие:
- Четене — чрез Flow, например
dataStore.data.map { preferences -> ... }, което позволява реагиране на промени в данните. - Записване — чрез suspend функцията
dataStore.edit { preferences -> ... }, където могат да се променят стойностите.
Пример за четене и писане с Preferences DataStore:
val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
val EXAMPLE_KEY = stringPreferencesKey("example_key")
// Запис
suspend fun saveExample(value: String) {
context.dataStore.edit { preferences ->
preferences[EXAMPLE_KEY] = value
}
}
// Четене
val exampleFlow: Flow<String?> = context.dataStore.data
.map { preferences ->
preferences[EXAMPLE_KEY]
}
По този начин, взаимодействието с DataStore се базира на използването на Flow за четене и suspend функции за писане.