Android WorkFlow 助你轻松构建复杂流程

Android WorkFlow是一个用于构建任务流程的工具,旨在解决多层次任务回调导致的代码复杂性和耦合度问题。它允许定义子任务的依赖关系,支持任务的顺序执行和并发执行,并提供了统一的进度回调。通过示例展示了图式流程和队列式流程的构建方式,以简化工作流的管理和执行。

概述

有时候完成一个任务可能需要执行A、B、C、D、E、F…若干子个任务。可能是这样子的,A完成后执行B,B完成后执行C…直到所有任务完成:
workflow1
也可能是这样子的:先执行A,A完成后可以并发执行BCDE,BCED都完成后执行F,F完成则流程完成:
workflow2
还可能是这样子的:先执行A,A执行完以后同时执行BC,B完成后执行E,D则要等BC完成之后才能执行,D完成后执行F,EF执行完成则流程完成:
workflow3
如果按照任务顺序直接写则需要很多的Callback层层嵌套来确保任务顺序,把自己都绕晕,过一段时间以后再看,可能就不知道自己身在何处,所为何事。如果有一个工具,可以按照需求构建任务流程,并且在统一等地方回调各个任务的进度及结果,则可以将子任务解耦,降低代码的复杂度和耦合度。WorkFlow就是为了这个目的而来。

WorkFlow

WorkFlow简化了复杂任务的构建流程,统一监听子任务的回调。可以设置某个子任务是必须/非必须的,这样在任务失败时就会终止工作流,或者忽视失败,继续流程。可以让子任务报告进度,也可以在某些时候主动终止流程。只需要按照下面步骤,即可完成实现工作流:

  1. 创建子任务Task;
  2. 将Task添加到工作流,并定义它们的前后依赖关系;
  3. 开始执行工作流,并监听工作流的进度回调。

图式流程:

各个子任务的前后依赖关系直接明确,但看起来可能会比较复杂,如图:
workflow3
如下所示代码构建该流程:

    val procedure = Procedure()
    val taskA = Task("taskA") {
   
    it.complete() }
    val taskB = Task("taskB") {
   
    it.complete() }
    val taskC = Task("taskC") {
   
    it.complete
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值