为什么 Kotlin 协程在异步任务中比 RxKotlin 更好?
大家好!我最近开始学习 Kotlin 进行 Android 开发,面临一个选择:使用协程还是 RxKotlin。网上有很多争论,我有点困惑。
我用 RxKotlin 写了一个小例子,从网络加载数据并更新 UI:
```kotlin
fun loadUserData() {
Observable.fromCallable { api.getUser() }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ user -> textView.text = user.name },
{ error -> Log.e("TAG", "Error: ${error.message}") }
)
}
```
这能工作,但代码看起来太冗长了。有人告诉我协程更简单、更轻量。我尝试用协程写同样的功能:
```kotlin
fun loadUserData() {
CoroutineScope(Dispatchers.Main).launch {
val user = withContext(Dispatchers.IO) { api.getUser() }
textView.text = user.name
}
}
```
确实代码更少,但我不明白:真正的优势是什么?