小编Big*_*hat的帖子

Kotlin 并行协程

从单独的协程中保存多个作业实例是否可以接受。假设我想一次运行几个协程,其中它们不相关并且不能在一个协程中发生,但我希望它们并行运行。在 Android 中,我应该保存作业实例,以便我可以在 onDestroy 方法中取消作业。将每个工作单独保存在列表中是否可以接受,或者我是否违反了某种规则。我知道在 RX 中他们有订阅,为什么 Kotlin 协程中没有等效的?

val jobList = arrayListOf<Job>()

fun startJob1() {
    jobList.add(launch {
        //do some work
    })

fun startJob1() {
    jobList.add(launch {
        //do some other unrelated work
    })

override fun onDestroy() {
    super.onDestroy()
    cancelAllActiveJobs(jobList)
}
Run Code Online (Sandbox Code Playgroud)

这种类型的架构对协程有意义吗?

android kotlin kotlin-coroutines

4
推荐指数
1
解决办法
5943
查看次数

标签 统计

android ×1

kotlin ×1

kotlin-coroutines ×1