首發(fā)于公眾號: DSGtalk1989
33.協(xié)程 & Retrofit
本質(zhì)上來說,所有的Rxjava的情況我們都可以通過協(xié)程來實現(xiàn),這邊以利用最廣泛的網(wǎng)絡(luò)請求為例
首先添加相關(guān)依賴
implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2'
接口定義為如下逢渔,返回類型為Deferred
@GET("newsflash")
fun getWeatherDataByCoroutine(
@Query("per_page") per_page: Int
): Deferred<Response<KrResponse>>
添加callAdapter
.addCallAdapterFactory(CoroutineCallAdapterFactory())
最終調(diào)用孙蒙,起全局協(xié)程递雀,并通過await
方法實現(xiàn)同步請求
GlobalScope.launch {
try {
Log.e(
"xxxx",
"data : ${serviceManager.weatherService.getWeatherDataByCoroutine(3).await().body()!!.data.items[0]}"
)
} catch (e: Exception) {
Log.e("xxxxx", "e : ${e.message}")
}
}
Kotlin學習筆記之 9 數(shù)據(jù)類與密封類
Kotlin學習筆記之 13 基礎(chǔ)操作符run柄延、with、let映之、also拦焚、apply
Kotlin學習筆記之 19 高階函數(shù)與 lambda 表達式
Kotlin學習筆記之 20 內(nèi)聯(lián)函數(shù)