似乎ListenableWorker不再具有@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)限制,但是我无法找出或找到有关如何在覆盖的startWork()函数中正确返回ListenableFuture
据我所知,唯一的选择是返回SettableFuture.create
有人知道更简单的方法吗?
编辑:据我所知,这是使用CallbackToFutureAdapter.Completer
的方法。override fun startWork(): ListenableFuture<Result> {
return CallbackToFutureAdapter.getFuture({
it.set(ListenableWorker.Result.success())
})
}
答案 0 :(得分:2)
按照Threading in ListenableWorker documentation page:
您可以使用以下两种方法之一创建ListenableFutures:
- 如果您使用番石榴,请使用
ListeningExecutorService
。- 否则,请在您的gradle文件中包含
councurrent-futures
并使用CallbackToFutureAdapter
。