本篇文章主要讲的是,kotlin 协程在 ktx 上的扩展
lifecycle 扩展
对于 lifecycle 的扩展,已经在 以前的文章中讲过了
主要的依赖
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0"
viewModel 扩展
对于 viewModel 的扩展,已经在 以前的文章中讲过了
主要的依赖
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
liveData 扩展
主要的依赖
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0'
官网链接如下:
具体使用举例如下:
class MainActivity : AppCompatActivity() {
val user: LiveData<String> = liveData {
//模拟网络请求
var user = getUser()
if (user == "ok") {
//模拟请求成功
emit("ok")
} else {
//模拟请求失败
emit("failed")
}
}
/**
* 模拟网络请求
*/
suspend fun getUser(): String {
var ret = withContext(Dispatchers.Default) {
"ok"
}
return ret
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
user.observe(this, {
Log.d("yy--", "name1:$it")
})
}
}