我有一些漫长的任务,我想将其粉碎成几个小子任务:
我们总共有4名工人在做不同的事情。第2和第4个工作请求的结果必须合并为单个最终结果。
我的问题是如何连接它们,合并结果以及如何使工作相互排队?
答案 0 :(得分:0)
您可以尝试Android workmanager库。该api提供与您所需类似的东西。这称为链接任务。 一个例子:
WorkManager.getInstance()
.beginWith(workA)
// Note: WorkManager.beginWith() returns a
// WorkContinuation object; the following calls are
// to WorkContinuation methods
.then(workB) // FYI, then() returns a new WorkContinuation instance
.then(workC)
.enqueue();
答案 1 :(得分:0)
要连接Worker,可以在WorkManager中使用WorkContinuation。 这样,您可以将多个任务作为构建复杂管道的步骤序列入队。 WorkManager's documentation中对此进行了解释。
然后可以使用androidx.work.Data
作为轻量级容器来将数据传递给工作程序,但是这不应被视为您的数据存储。例如,您可以查看如何在WorkManager's codelab中实现此功能。
如果您需要在Worker之间传递更多数据,最好的选择可能是将它们卸载到数据层。