gpt4 book ai didi

Android协程作业更改为CompletableJob?

转载 作者:行者123 更新时间:2023-11-29 18:25:44 26 4
gpt4 key购买 nike

当我将我的项目协程更新到较新版本时,我所有具有启动范围的作业创建都失败了......

在渐变上:

implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2'

错误:

Type mismatch: inferred type is Job but CompletableJob was expected

代码:

var websiteCrawlerResultList: ArrayList<WebsiteCrawlerResult> = arrayListOf()
var url: URL? = null
private var urlList: MutableSet<String> = mutableSetOf()
private var job = Job()
private var scope = CoroutineScope(Dispatchers.Default+job)

fun startCrawler() {
job = scope.launch {
crawlPageLinks(url)
Log.d(TAG, "Finished ${url.toString()} crawling")
}
}

job = scope.launch { Android Studio 返回类型不匹配错误时,他期望是 CompletableJob,但我没有使用它并且这个不存在于旧版本。

最佳答案

Job() 实际上是一个返回 CompletableJob 的工厂函数。因此 private var job = Job() 的类型是 CompletableJob。但是,scope.launch 的返回类型只是一个Job。您收到错误是因为并非所有 Job 实例都是 CompletableJob 实例。

您可以指定要使用的确切类型,而不是依赖类型推断(以及自动分配的 CompletableJob 类型):

private var job: Job = Job()

关于Android协程作业更改为CompletableJob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59150471/

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