gpt4 book ai didi

kotlin - 如何将 Kotlin 从 1.2 迁移到 Kotlin 1.3.0,然后在演示者函数中使用 async、UI 和 bg

转载 作者:IT老高 更新时间:2023-10-28 13:44:25 26 4
gpt4 key购买 nike

我在 Kotlin 项目中使用 MVP 模式。我有一个 Presenter 类:

import com.google.gson.Gson
import kotlinx.coroutines.experimental.android.UI
import kotlinx.coroutines.experimental.async
import org.jetbrains.anko.coroutines.experimental.bg

class TeamsPresenter(private val view: TeamsView,
private val apiRepository: ApiRepository,
private val gson: Gson
) {
fun getTeamList(league: String?) {
view.showLoading()

async(UI){
val data = bg {
gson.fromJson(apiRepository
.doRequest(TheSportDBApi.getTeams(league)),
TeamResponse::class.java
)
}
view.showTeamList(data.await().teams)
view.hideLoading()
}
}
}

这个演示者类在 Kotlin 1.2.71 上运行良好,但我无法让它在 Kotlin 1.3.0 上运行。

我在项目的 build.gradle 中更新了 Kotlin 版本,移除了“实验协程”并添加了 kotlin 协程核心依赖:

implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.0.0'

这是我当前的代码:

import com.google.gson.Gson

class TeamsPresenter(private val view: TeamsView,
private val apiRepository: ApiRepository,
private val gson: Gson
) {
fun getTeamList(league: String?) {
view.showLoading()

async(UI){
val data = bg {
gson.fromJson(apiRepository
.doRequest(TheSportDBApi.getTeams(league)),
TeamResponse::class.java
)
}
view.showTeamList(data.await().teams)
view.hideLoading()
}
}
}

错误主要在 async、UI 和 bg 函数上:

unresolved reference: async
unresolved reference: UI
unresolved reference: bg

我怎样才能让它在 Kotlin 1.3.0 上工作?任何帮助,在此先感谢。

最佳答案

您必须使用 GlobalScope.launch 而不是 launch ,GlobalScope.async 而不是 asyncDispatcher.main 而不是 UI

coroutineBasics

关于kotlin - 如何将 Kotlin 从 1.2 迁移到 Kotlin 1.3.0,然后在演示者函数中使用 async、UI 和 bg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53125385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com