ListenableWorker 示例中的 Callback 对象来自哪里?

Where does the Callback object come from in the ListenableWorker example?

Android developer docs 显示了如何使用 ListenableWorker 的示例。但是,尽管已将 councurrent-futures 添加到我的项目中,但我现在看到了文档中使用的相关回调对象:

 @NonNull
    @Override
    public ListenableFuture<Result> startWork() {
        return CallbackToFutureAdapter.getFuture(completer -> {
            Callback callback = new Callback() {
            ...
            }

谁能指出我正确的方向? androidx.concurrent.callback 中似乎根本没有 Callback class。

this 实际上是我能找到的唯一使用 CallbackToFutureAdapter.getFuture 的代码示例。

查看类似 API 的文档,在我看来 Callback 本身不是 API,而是任何具有结果的操作的通用表示。

https://developer.android.com/reference/androidx/concurrent/futures/CallbackToFutureAdapter.html

例如,您可以按如下方式定义回调,

interface AsyncCallback  {
   void onSuccess(Foo foo);
   void onError(Failure failure);
}

以及startWork方法如下

@Override
public ListenableFuture<Result> startWork() {
    return CallbackToFutureAdapter.getFuture(completer -> {
        AsyncCallback callback = new AsyncCallback() {
            int successes = 0;

            @Override
            public void onError(Failure failure) {
                completer.setException(failure.getException());
            }

            @Override
            public void onSuccess(Foo foo) {
                completer.set(Result.success());
            }
        };

        for (int i = 0; i < 100; ++i) {
            downloadAsynchronously("https://www.google.com", callback);
        }
        return callback;
    });
}