以下代码无法编译,但documentation表示它应该像这样简单:
override fun onResume() {
super.onResume()
async {
Log.d("foo", "async")
}
}
错误是:
...kt: (31, 9): None of the following functions can be called with the arguments supplied:
@Deprecated public fun <T> async(context: CoroutineContext, start: Boolean, block: suspend CoroutineScope.() -> ???): Deferred<???> defined in kotlinx.coroutines.experimental
public fun <T> async(context: CoroutineContext, start: CoroutineStart = ..., block: suspend CoroutineScope.() -> ???): Deferred<???> defined in kotlinx.coroutines.experimental
答案 0 :(得分:1)
如果您将列出的签名与https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.experimental/async.html进行比较,那就非常不同了。
看起来您使用的是旧版coroutines库,特别是context
没有默认值的版本。
答案 1 :(得分:1)
要在Android应用中使用协程,必须按照here所述向kotlinx-coroutines-android
添加依赖项。
答案 2 :(得分:0)
此外,async
函数只能在协程或暂停函数内部使用。因此,即使您具有正确的依赖关系,如果尝试在onResume()中使用async
,您的代码也无法编译。
答案 3 :(得分:-2)
Kotlin 1.1尝试使用.specific-class > .mat-expansion-indicator, .mat-expansion-indicator:after {
color: red !important;
}
方法:
async{}
我建议你阅读question