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 барои навишт.