使用 Kotlin 协程了解 Job 的所有状态

Jéw*_*ôm' 6 coroutine kotlin kotlin-android-extensions kotlin-coroutines

是否可以知道一个协程Job的所有状态?

我找到了这个函数扩展,但我无法访问 a 的所有状态Job

fun Job.status(): String = when {
    isCancelled -> "cancelled"
    isActive -> "Active"
    isCompleted -> "Complete"
    else -> "Nothing"
}
Run Code Online (Sandbox Code Playgroud)

该类没有isNew,isCancellingisWaitingForChildren函数Job。为什么 ?

在此输入图像描述

Jéw*_*ôm' 7

感谢 Drawn Roccoon 我找到了解决方案:

fun Job.status(): String = when {
    isActive -> "Active/Completing"
    isCompleted && isCancelled -> "Cancelled"
    isCancelled -> "Cancelling"
    isCompleted -> "Completed"
    else -> "New"
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

此链接中的更多信息:https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-job/