gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 18:30:23 26 4
gpt4 key购买 nike

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

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

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

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

最佳答案

查看类似 API 的文档,在我看来,回调本身不是 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;
});
}

关于android - ListenableWorker 示例中的 Callback 对象来自哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56557247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com