Kotlin 携程。Class类里面创建携程任务 CoroutineScope
Posted 安果移不动
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin 携程。Class类里面创建携程任务 CoroutineScope相关的知识,希望对你有一定的参考价值。
官方网址
利用 Kotlin 协程提升应用性能 | Android 开发者 | Android Developers
协程概念
CoroutineScope
CoroutineScope 会跟踪它使用 launch
或 async
创建的所有协程。您可以随时调用 scope.cancel()
以取消正在进行的工作(即正在运行的协程)。在 android 中,某些 KTX 库为某些生命周期类提供自己的 CoroutineScope
。例如,ViewModel
有 viewModelScope,Lifecycle
有 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的主要内容,如果未能解决你的问题,请参考以下文章
18 11 20 网络通信 ----多任务---- 携程 ----生成器