环境: AS 3.6.3, gradle 5.6.4, jdk8, kotlin 1.4.10
1 build.gradle
dependencies {
// implementation "androidx.datastore:datastore-preferences:1.0.0-alpha06"
// 正常只使用上行,但由于大部分机器版本配置都会出现冲突,所以改用下面行兼容
implementation('androidx.datastore:datastore-preferences:1.0.0-alpha06'){
exclude group:'org.jetbrains.kotlinx', module:'kotlinx-coroutines-core-jvm'
}
// 单独使用协程时,下面依赖必备
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3'
}
2 引用官方代码,写一个计算器,类和业务代码一页过。
// import 自己用(Alt+shift+enter)引入
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main) //加载布局文件
btn1.setOnClickListener {
//自己写一个Botton用来做加法计算器
CoroutineScope(Dispatchers.Main).launch {
DataStoreUtils.write(applicationContext, 1)
}
}
btn2.setOnClickListener {
//另外一个按钮用来显示结果
CoroutineScope(Dispatchers.Main).launch {
val myData: Flow<Int> = DataStoreUtils.read(applicationContext)