kotlin-coroutines-retrofit
Kotlin 协程的await()
配合 Retrofit 用起来是真的爽,省掉一堆回调写法,代码更干净。你只要引入kotlinx-coroutines-retrofit
库,就能把Call
变成挂起函数,直接在协程里用同步风格写异步求,简洁还不容易出错。
网络求用 Retrofit 的你,肯定对enqueue()
那堆回调不陌生吧?现在只要配合协程的await()
,代码能清爽不少:
interface ApiService {
@GET("api/data")
suspend fun getData(): Response
}
是不是一眼看明白?调用也超简单,直接协程里开干:
lifecycleScope.launch(Dispatchers.IO) {
try {
val response = apiService.getData().await()
if (response.isSuccessful) {
val data = response.body()
withContext(Dispatchers.Main) {
updateUI(data)
}
} else {
handleErrorResponse(response.code())
}
} catch (e: Exception) {
handleException(e)
}
}
这样一改,顺序逻辑清楚多了,也不用担心 UI 线程被卡死。出错就抛异常,起来更直观。搭配lifecycleScope
和Dispatchers.IO
,也不会阻塞主线程。
如果你还在用enqueue()
那一套,可以试试await()
,是和 MVVM 架构、Jetpack 组件一起用,体验会更丝滑。顺手推荐几个相关资料:
kotlin-coroutines-retrofit-master.zip
预估大小:16个文件
kotlin-coroutines-retrofit-master
文件夹
gradlew
6KB
LICENSE.txt
11KB
build.gradle.kts
4KB
src
文件夹
test
文件夹
kotlin
文件夹
ru
文件夹
gildor
文件夹
coroutines
文件夹
75.39KB
文件大小:
评论区