Android 动态设置工作请求的顺序

Android 动态设置工作请求的顺序,android,android-workmanager,Android,Android Workmanager,我有一个很长的任务,我想把它分解成几个小的子任务: 第一个工人根据下载结果下载任务列表和n个任务 下一个工作者完成它的小任务:它检查,如果是真的,子任务完成后不需要更多的操作,那么它将下一个工作请求排队 如果检查失败:第三个工作进程从远程服务器加载数据,如果成功,我们将发出新的工作请求以在磁盘上存储数据,esle任务失败(或重试) 如果加载了数据,则最后一个工作进程将数据存储在磁盘上,如果成功,则完成子任务,否则失败 我们总共有4名工人在做不同的工作。第二次和第四次工作请求的结果必须合并为单个最

我有一个很长的任务,我想把它分解成几个小的子任务:

  • 第一个工人根据下载结果下载任务列表和n个任务
  • 下一个工作者完成它的小任务:它检查,如果是真的,子任务完成后不需要更多的操作,那么它将下一个工作请求排队
  • 如果检查失败:第三个工作进程从远程服务器加载数据,如果成功,我们将发出新的工作请求以在磁盘上存储数据,esle任务失败(或重试)
  • 如果加载了数据,则最后一个工作进程将数据存储在磁盘上,如果成功,则完成子任务,否则失败
  • 我们总共有4名工人在做不同的工作。第二次和第四次工作请求的结果必须合并为单个最终结果

    我的问题是如何连接它们,合并结果,以及如何将彼此的工作排队?

    您可以尝试使用库。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();
    

    要连接工作人员,可以在WorkManager中使用。 通过这种方式,您可以将多个任务排队,作为构建复杂管道的一系列步骤。这一点在本文中进行了解释

    然后,是否可以将其用作轻量级容器来向工作人员传递数据,但这不应视为您的数据存储。作为一个例子,您可以看看这是如何在中实现的


    如果您需要在工作人员之间传递更多数据,您最好的选择可能是将它们卸载到数据层。

    我的问题是关于从一开始的WorkManager。您知道如何做到这一点吗?