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 ֆունկցիաների՝ գրելու համար։