Skip to content
This repository was archived by the owner on Oct 19, 2025. It is now read-only.
This repository was archived by the owner on Oct 19, 2025. It is now read-only.

关于 OnTaskFinishListener 执行时刻疑惑 #4

@kymjs

Description

@kymjs

我看到 Task 中,对于OnTaskFinishListener的执行是如下条件进行的。

void notifyFinished() {
    if (!mSuccessorList.isEmpty()) {
        AlphaUtils.sort(mSuccessorList);

        for (Task task : mSuccessorList) {
            task.onPredecessorFinished(this);
        }
    }

    if (!mTaskFinishListeners.isEmpty()) {
        for (OnTaskFinishListener listener : mTaskFinishListeners) {
            listener.onTaskFinish(mName);
        }
        mTaskFinishListeners.clear();
    }
}

这是否会造成后一个Task 已经被执行了,才调用前一个 Task的回调?我的理解,通常业务在使用这个回调时,应该是需要为后一个 Task 赋值某些执行条件,如果是这样,不知道这么做的出发点是什么?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions