我正在使用workmanager将图像文件上传到服务器,并希望将上传的图像路径传递给下一个工作程序,但是Result.success(output)
在上传功能完成之前被调用。
class UploadImageWorker(context: Context, workerParameters: WorkerParameters) : RxWorker(context, workerParameters) {
override fun createWork(): Single<Result> {
return Single.fromCallable {
//UploadImageFile()
//updating output
}.map{
Result.success(output)
}
}
}
答案 0 :(得分:0)
在这种情况下,成功仅报告作业已成功触发,而不是对作业本身的衡量。
您应该只使用工人来完成工作并执行以下操作:
MyFactory.ImageFactory.UploadImageFile(file)
然后在ImageFactory内部使用Observer模式或类似的方式来订阅UploadImageFile的状态。这将是成功的真正衡量标准。
答案 1 :(得分:0)
您应该使用RxWorker
。您可以返回Single<Result>
。阅读RxWorker
的文档以了解更多信息。
https://developer.android.com/reference/androidx/work/RxWorker