【问题标题】:How to get WorkRequest Id inside CoroutineWorker如何在 CoroutineWorker 中获取 WorkRequest Id
【发布时间】:2021-01-08 08:16:34
【问题描述】:

我有一种情况需要将WorkRequest.id 发送给 CoroutineWorker。

我正在处理来自CoroutineWorker 的 Room DB,现在在 DB 的一列中,我需要存储 WorkRequest.id (UUID),以便当用户从 recyclerview 的任务列表中取消任务时,我可以知道要取消哪个WorkRequest UUID。

现在我的问题是WorkRequest的id是在数据分配给setInputData()之后创建的,所以在id创建之前,如何将WorkRequest.id发送给我的worker。

有没有办法在创建 WorkRequest 后向 CoroutineWorker 发送额外的数据?

【问题讨论】:

  • 我认为您可以在CoroutineWorker 中调用#getId() 以获取创建它的ID WorkRequest。它来自ListenableWorker,所以你应该可以调用它。如果这就是你要问的。如果我理解错了,请告诉我。
  • @ADM 是的! #getId() 是我需要的。我刚试过它和它的工作原理。谢谢。

标签: android kotlin-coroutines android-jetpack android-workmanager workmanagers


【解决方案1】:

您可以在CoroutineWorker 中调用#getId() 以获取创建它的ID WorkRequest。它来自ListenableWorker,所以你应该可以调用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 2020-01-08
    • 2011-12-23
    • 2014-03-31
    • 2016-12-16
    • 1970-01-01
    相关资源
    最近更新 更多