Kotlin 携程。Class类里面创建携程任务 CoroutineScope

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin 携程。Class类里面创建携程任务 CoroutineScope相关的知识,希望对你有一定的参考价值。

官方网址

利用 Kotlin 协程提升应用性能  |  Android 开发者  |  Android Developers

协程概念

CoroutineScope

CoroutineScope 会跟踪它使用 launch 或 async 创建的所有协程。您可以随时调用 scope.cancel() 以取消正在进行的工作(即正在运行的协程)。在 android 中,某些 KTX 库为某些生命周期类提供自己的 CoroutineScope。例如,ViewModel 有 viewModelScopeLifecycle 有 lifecycleScope。不过,与调度程序不同,CoroutineScope 不运行协程。

注意:如需详细了解 viewModelScope,请参阅 Android 中的简易协程:viewModelScope

viewModelScope 也可用于 Android 上采用协程的后台线程中的示例内。但是,如果您需要创建自己的 CoroutineScope 以控制协程在应用的特定层中的生命周期,则可以创建一个如下所示的 CoroutineScope:

class ExampleClass 

    // Job and Dispatcher are combined into a CoroutineContext which
    // will be discussed shortly
    val scope = CoroutineScope(Job() + Dispatchers.Main)

    fun exampleMethod() 
        // Starts a new coroutine within the scope
        scope.launch 
            // New coroutine that can call suspend functions
            fetchDocs()
        
    

    fun cleanUp() 
        // Cancel the scope to cancel ongoing coroutines work
        scope.cancel()
    

已取消的作用域无法再创建协程。因此,仅当控制其生命周期的类被销毁时,才应调用 scope.cancel()。使用 viewModelScope 时,ViewModel 类会在 ViewModel 的 onCleared() 方法中自动为您取消作用域。

以上是关于Kotlin 携程。Class类里面创建携程任务 CoroutineScope的主要内容,如果未能解决你的问题,请参考以下文章

kotlin - Coroutine 协程

18 11 20 网络通信 ----多任务---- 携程 ----生成器

干货 | 携程机票 App KMM 跨端生产实践

18 11 20 网络通信 ----多任务---- 携程 ----迭代器

kotlin从摸索到探究- 协程的执行流程

线程进程携程理解