【问题标题】:Prevent kotlin coroutine from being interrupted even if user navigates away即使用户导航离开,也防止 kotlin 协程被中断
【发布时间】:2021-08-13 15:31:49
【问题描述】:

在我的代码中,一个方法执行三个 API POST,每个都需要一段时间才能完成。我在该方法上使用 kotlin 协程启动。但我也希望用户能够在任务运行时离开页面。我不希望在导航时中断执行三个 API 调用的任务。最好的方法是什么? WorkManager 是要走的路吗?

不知何故,我的问题类似于this,但我需要在 Kotlin 中进行。那篇文章中的答案仍然相关吗?

【问题讨论】:

  • 你能从技术上描述takes a whilenavigate away是什么意思吗,我的意思是a while是多少以及用户navigate away来自哪里?
  • 您所说的“导航离开”是指 Android 应用生命周期吗?看看服务
  • @NathanMeade,是的。当我回到上一个活动时。
  • @Anshul GlobalScope 应该非常小心地使用,因为您最终可能会创建太多协程
  • 您只需在其生命周期与您正在导航的活动的生命周期无关的范围内启动这些协程。您可以在 Application 类中创建一个新范围并使用该范围启动这些协程。

标签: android kotlin kotlin-coroutines android-workmanager


【解决方案1】:

您需要一项服务。请阅读:

https://developer.android.com/guide/background

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多