mCurrentTaskShouldDependOnStartTask
来源:4-5 TaskFlow合体之Project任务组-2
轻风融雪
2021-06-16 06:49:57
mCurrentTaskShouldDependOnStartTask 这个标志位还是有点儿晕,add方法里面 怎么就把这个标志位变成了true
mCurrentTaskShouldDependOnStartTask = true
1回答
这个变量的命名是有点不通俗易懂,有点饶哈。
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依赖关系的处理。
综上:这里的逻辑是有点复杂的,需要好好理一理,画一画,断点跟踪一下