如何在 CoroutineWorker 中获取 WorkRequest Id

How to get WorkRequest Id inside CoroutineWorker

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

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

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

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

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