mCurrentTaskShouldDependOnStartTask

来源:4-5 TaskFlow合体之Project任务组-2

轻风融雪

2021-06-16 06:49:57

mCurrentTaskShouldDependOnStartTask 这个标志位还是有点儿晕,add方法里面 怎么就把这个标志位变成了true

mCurrentTaskShouldDependOnStartTask = true


写回答

1回答

LovelyChubby

2021-06-16

这个变量的命名是有点不通俗易懂,有点饶哈。
mCurrentTaskShouldDependOnStartTask
需要配合着build方法一起看

添加任务有两种方式
add 
dependOn

当使用add添加了一个task后,它应该位于那个任务的后面执行呢?它应该位于那个task后面执行呢?此时是不确定的。

比如
add(taskA).add(taskB).build()最后任务树应该是taskA,taskB都依赖于startTask的

再比如
add(taskA).dependOn (taskB).build()最后任务树应该是
start--taskB--taskA--end.
所以可以看到add的时候,是没法确定该task的依赖关系的,所以用了一个字段mCurrentTaskShouldDependOnStartTask来标记,默认认为它应该依赖于startTask,当紧接着调用了dependOn 后又置为false了。在最后的build方法里也有一段对刚添加的task依赖关系的处理。

综上:这里的逻辑是有点复杂的,需要好好理一理,画一画,断点跟踪一下

0

移动端架构师

亲历日活千万级APP全流程落地,成为技术强+思维深+视野广 的P7级移动端架构师

579 学习 · 452 问题

查看课程