动态链接一对多的“ OneTimeWorkRequest”对象

时间:2018-11-27 10:29:13

标签: android chaining android-workmanager

有许多方法可以链接WorkRequest对象。并行,因此甚至可以合并多个作品。

尽管该API似乎非常灵活,但我找不到实现以下任务的方法:

第一个Worker负责收集信息,在执行结束时,它会输出一个应操作的文件名列表。 之后,我想对每个文件进行操作。 因此,我可以想象有另一个Worker负责处理单个文件。但是我找不到一种方法来将每个文件名的输出从第一个Worker流到多个操纵器Worker对象。 (每个文件应该有一个操纵器WorkRequest,并且这些WorkRequest对象应该并行运行)。

一个WorkRequest如何基于其输出创建动态数量的WorkRequest个对象?

2 个答案:

答案 0 :(得分:1)

我不知道有什么方法可以使动态数量的WorkRequest入队。这个想法是,您构建一个固定的WorkRequests链,并且可以由WorkManager整体进行处理(如果每个工作人员都成功的话)。

对于这种特殊情况,我可能会尝试在初始WorkRequest成功后创建所需数量的WorkRequest(每个文件一个)。

答案 1 :(得分:0)

您可以从Worker内部进行更多工作。因此,在第一个Worker的结尾,您可以根据要处理的文件来排队其他工作线程。如果您想附加到一系列独特的作品中,也可以选择查看enqueueUniqueWork()ExistingWorkPolicy.APPEND