Sobes.tech
Junior — Middle

Ինչ մեթոդներով կարելի է իրականացնել փոխազդեցություն DataStore- ի հետ ծրագրում?

sobes.tech AI

Պատասխան AI-ից

Android-ում DataStore-ի հետ փոխազդեցության համար կարող եք օգտագործել երկու հիմնական մոտեցում.

  1. Preferences DataStore — պահում է բանալին-արժեք զույգեր, հարմար է պարզ կարգավորումների համար:

    • Օգտագործվում է DataStore<Preferences> օբյեկտի միջոցով:
    • Կարդալ և գրել կարելի է Preferences.Key<T> տիպի բանալիներով:
  2. 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 ֆունկցիաների՝ գրելու համար։