- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我当前的 android 应用程序使用链式 worker 来执行复杂的后台任务。
我只观察链中的最后一个 worker 来检测整个链是否成功完成。到目前为止,这种方法一直是可以接受的,因为我有一个新要求,我还需要在工作人员失败时传递数据。
是我开始观察链中所有 worker 的唯一选择吗?
或者
是否可以在失败的子工作人员中设置输出数据并从观察链中最后一个工作人员获得的工作信息访问它?
例如,如果我有一个由 5 个连续工作人员组成的链,如下所示:-
WorkerA
WorkerB
WorkerC
WorkerD
WorkerZ
我只是观察
WorkerZ
, 和
WorkerC
失败并在其结果中设置 outputData,有什么方法可以通过仅观察来访问 WorkData
WorkerZ
?
最佳答案
没有必要观察所有的 worker 。如果您使用 Result.failure
返回数据在每个工作人员中,您可以轻松找到哪个工作人员失败以及它的输出数据是什么,如下所示:
WorkManager.getInstance(context)
.getWorkInfosForUniqueWorkLiveData(UNIQUE_WORK_NAME)
.observeForever { workInfos ->
if(it.state == WorkInfo.State.FAILED){ //failed worker
val failureResult = it.outputData
}
}
或像这样:
val failureResult = WorkManager.getInstance(context)
.getWorkInfosForUniqueWork(UNIQUE_WORK_NAME)
.get()
.firstOrNull{
it.state == WorkInfo.State.FAILED
}
?.outputData
关于android - 如何使用 android CoroutineWorkers 将数据从失败的子 worker 传递给链中的最后一个 worker ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70158590/
我正在使用 CoroutineWorker用于后台任务。这是代码 fragment class SimpleWorker(context: Context) : CoroutineWorker(con
我正在尝试实现 CoroutineWorker 以在 Android 应用程序中执行一些后台工作。我正在使用的第三方库使用回调,如 onConnected、onChanged 等。如何在 Corout
我正在尝试将一些网络调用迁移到 WorkManager CoroutineWorkers,以利用故障自动重试和调度功能。 这是我写的 worker : @HiltWorker class Refres
我正在尝试使用 dagger hilt 注入(inject)协程 worker ,我已按照文档中的所有说明进行操作 https://developer.android.com/training/dep
我使用WorkManager版本 2.2.0 用于在用户再次上线时启动协程 API 调用。 In the example by Google ,如果我想将 CoroutineWorker 的线程从默认
我当前的 android 应用程序使用链式 worker 来执行复杂的后台任务。 我只观察链中的最后一个 worker 来检测整个链是否成功完成。到目前为止,这种方法一直是可以接受的,因为我有一个新要
有人问了同样的问题,但它们对我不起作用,一开始我使用的是最新版本的工作管理器,它是 2.7 alpha 3,但我降级了,因为它只兼容 android 12 preview sdk,错误仍然存在!
我升级到 WorkManager 2.1.0 并尝试使用一些 Kotlin 扩展,包括 CoroutineWorker .我的 worker 正在延长 androidx.work.Worker以前,它
我是一名优秀的程序员,十分优秀!