Workmanager:FutureCallback总是返回成功,无论结果如何
我正在这样做:
val fileUploadRequest = OneTimeWorkRequestBuilder<FileUploadWorker>().build()
Futures.addCallback(workManager.enqueueUniqueWork(this::class.simpleName!!, ExistingWorkPolicy.KEEP, fileUploadRequest).result,
object : FutureCallback<Operation.State.SUCCESS> {
override fun onSuccess(result: Operation.State.SUCCESS?) {
Log.d(TAG, "onSuccess: ")
}
override fun onFailure(t: Throwable) {
Log.d(TAG, "onFailure: ")
}
},
executor
)
使用此RXWorker代码:
override fun createWork(): Single<Result> {
return Single.just(Result.failure())
}
我总是最终进入OnSuccess()。怎么会?
另外:期货回调是否被删除了?还是永远活着?在某些情况下,我需要手动删除它吗?
I am doing this:
val fileUploadRequest = OneTimeWorkRequestBuilder<FileUploadWorker>().build()
Futures.addCallback(workManager.enqueueUniqueWork(this::class.simpleName!!, ExistingWorkPolicy.KEEP, fileUploadRequest).result,
object : FutureCallback<Operation.State.SUCCESS> {
override fun onSuccess(result: Operation.State.SUCCESS?) {
Log.d(TAG, "onSuccess: ")
}
override fun onFailure(t: Throwable) {
Log.d(TAG, "onFailure: ")
}
},
executor
)
with this RxWorker code:
override fun createWork(): Single<Result> {
return Single.just(Result.failure())
}
I always end up in onSuccess(). How come?
Also: Is the Futures callback ever removed? Or does it live forever? Do I need to remove it manually during some circumstances?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论