【发布时间】:2021-08-13 15:31:49
【问题描述】:
在我的代码中,一个方法执行三个 API POST,每个都需要一段时间才能完成。我在该方法上使用 kotlin 协程启动。但我也希望用户能够在任务运行时离开页面。我不希望在导航时中断执行三个 API 调用的任务。最好的方法是什么? WorkManager 是要走的路吗?
不知何故,我的问题类似于this,但我需要在 Kotlin 中进行。那篇文章中的答案仍然相关吗?
【问题讨论】:
-
你能从技术上描述
takes a while和navigate away是什么意思吗,我的意思是a while是多少以及用户navigate away来自哪里? -
您所说的“导航离开”是指 Android 应用生命周期吗?看看服务
-
@NathanMeade,是的。当我回到上一个活动时。
-
@Anshul
GlobalScope应该非常小心地使用,因为您最终可能会创建太多协程 -
您只需在其生命周期与您正在导航的活动的生命周期无关的范围内启动这些协程。您可以在 Application 类中创建一个新范围并使用该范围启动这些协程。
标签: android kotlin kotlin-coroutines android-workmanager