简介:DataStore是Jetpack 里一个数据存储的架构组件,可以代替SharedPreferences 来存储数据,其功能更强大,可以配合协程异步存取。
一,下面来介绍一下如何简单的使用
a,首先导入对应版本的库
dependencies {
implementation "androidx.datastore:datastore:1.0.0-beta01"
implementation "androidx.datastore:datastore-preferences:1.0.0-beta01"
}
b,创建单例的实例,官网推荐放到Kotlin文件顶层去创建。
val Context.dataStore: DataStore<Preferences>
by preferencesDataStore(name = "settings")
c,创建key
//使用stringPreferencesKey包装一下
val test= stringPreferencesKey("test")
d,保存数据
suspend fun setDataStore(context:Context,key:Preferences.Key<String>,data:String){
context.dataStore.edit { settings->
settings[key] = data
}
}
e,读取数据
suspend fun getDataStoreString(context:Context,key:Preferences.Key<String>):String{
val data:Flow<String> = context.dataStore.data.map {
it[key]?:""
}
return data.first()
}