Avatar ·

为什么 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 } } ``` 确实代码更少,但我不明白:真正的优势是什么?