Я использую Android WorkManager version 1.0.0-beta-01
для загрузки некоторых файлов на сервер. Теперь я хочу отправить ход выполнения загрузки (и не только конечный результат) вызывающей стороне.
class UploadWorker @Inject constructor(context: Application,
parameters: WorkerParameters,
private val uploadService: UploadService)
: RxWorker(context, parameters) {
@SuppressLint("CheckResult")
override fun createWork(): Single<Result> {
val filePath = inputData.getString(FILE_PATH)
//logic for sending files goes here where I want to send back the progress
return Single.just(Result.success())
}
}
Я могу добиться этого, имея в своем приложении одноэлементный объект с LiveData, затем обновлять LiveData из моей работы и прослушивать его в вызывающей программе, но это не кажется хорошим решением!
Есть ли лучший способ добиться этого?