Closed HongdouHub closed 4 years ago
外部调用方式如下: val manager = getInstance().debuggable { true }.taskFactory { factory }.graphics {xxx} val lockableAnchor = manager.requestBlockWhenFinish(factory.getTask(TASK_10)) lockableAnchor.setLockListener(object : LockableAnchor.LockListener {}) manager.startUp()
解决外部直接调用 AnchorsManager#requestBlockWhenFinish时,但未执行 graphics.invoke()导致 暂未初始化 taskId 对应的 'TASK'实例,requestBlockWhenFinish方法传入的是空实例(内部没有 依赖与被依赖关系),此时生成的LockableTask内部也为空,将导致锁无法锁住后续任务。
AnchorsManagerBuilder.allTask这个属性,在原有代码上已经存在(但一直未被使用),其赋值是在 “String.sons” 和 “String.alsoParents” 这两个扩展函数中。因为已经有了赋值,所以提交的代码上没有做此方面的改动。
@HongdouHub 调整之后,所有task的依赖都会被添加 inner_start_up_task。validSon选择保存之后提前初始化即可。
外部调用方式如下: val manager = getInstance().debuggable { true }.taskFactory { factory }.graphics {xxx} val lockableAnchor = manager.requestBlockWhenFinish(factory.getTask(TASK_10)) lockableAnchor.setLockListener(object : LockableAnchor.LockListener {}) manager.startUp()
解决外部直接调用 AnchorsManager#requestBlockWhenFinish时,但未执行 graphics.invoke()导致 暂未初始化 taskId 对应的 'TASK'实例,requestBlockWhenFinish方法传入的是空实例(内部没有 依赖与被依赖关系),此时生成的LockableTask内部也为空,将导致锁无法锁住后续任务。