问题标签 [android-workmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
20029 浏览

android - 用于在后台运行日常任务的 Android WorkManager api

即使应用程序关闭,我也需要每天在后台调用一个 API。我看过 WorkManager API。对于我的场景,我尝试了 PeriodicWorkRequest 但不幸的是,它没有达到我的预期结果。我所做的是我在 Application 类中使用了这段代码

但是之后第一次打开应用程序时它会重复运行11次,24小时后它不会运行。请任何人帮我解决。

0 投票
2 回答
2439 浏览

android-workmanager - Android Workmanager PeriodicWorkRequest 不是唯一的

对于 OneTimeWorkRequest,我们可以使用 WorkContinuation 来确保如果作业已经安排好了,我们可以保留或替换它。PeriodicWorkRequest 没有这样的选项,因此每次创建我的主要活动时都会创建一个新作业,一段时间后我会遇到此异常。

所以我正在尝试以下创建一个“独特的周期性工作”

然后在工作结束时再次调用这个方法

0 投票
2 回答
2611 浏览

android - 如何为工人阶级实施匕首?

由于Worker类是由框架(WorkerManager)创建的,我们如何将@Inject字段用于Worker

0 投票
3 回答
14940 浏览

android - WorkManager 的 OneTimeWorkRequest 的重试策略/机制是什么

我有以下一次性工人。

根据https://developer.android.com/topic/libraries/architecture/workmanager

我想知道,如果SyncWorker继续返回RETRY,重试策略是WorkManager什么?例如,最大重试次数是WorkManager多少?文档对此并不清楚。

0 投票
1 回答
741 浏览

android - 尝试在空对象引用上调用虚拟方法“boolean androidx.work.State.isFinished()”

我正在尝试使用 codeLab 文档学习 WorkManager for Android。当我尝试测试 beginUniqueWork( Ensure Unique Work )的功能时,我的应用程序崩溃了

我只是通过多次选择图像来实现 beginUniqueWork 和测试应用程序。

我在 ViewModel 类的 aplyBlur() 中编写的代码是:

0 投票
1 回答
788 浏览

android - WorkManager:Kotlin 的依赖问题

尝试使用工作管理器时出现以下错误。我已经将我的项目迁移到AndroidX并且所有其他架构组件都在工作。

错误

我很确定我需要支持库中的一些依赖项。但我不知道他们是谁。

我尝试添加注释包,因为错误说它找不到 RestrictTo$Scope 的类文件。还是不行。

0 投票
1 回答
504 浏览

android - 即使在重复时间内从未满足设置的约束条件,androidx JetPack 工作管理器也会完成工作吗?

例如:我将时间间隔为 24 小时的 PeriodicWorkRequest 排队,并受到网络需求和充电的限制。如果在 24 小时内从未满足约束条件,那么工作经理是否会按照他们在 Android 开发指南网站“即发即弃”和“ WorkManager 用于需要保证系统会运行它们的任务”中提到的那样进行工作?

0 投票
4 回答
3302 浏览

android - 无法在 WorkManager 的 Worker 类中注入单例类

我正在研究 MVVM 架构,并且正在使用 Dagger2 进行数据注入。我面临的问题是在 Activity/Fragments 中 @Inject 工作正常,但在 WorkManager 的 Worker 类中,@Inject 在运行时给出空指针异常。我该如何解决?

以下是 Worker 类代码:

方法:

0 投票
2 回答
6336 浏览

android - 显示运行 WorkManager 工作人员的详细进度

我想用新的 JetPack WorkManager(链接到codelabs)组件(在应用程序的沙箱分支中)替换我现有数据同步系统的作业调度方面。我现有的系统运行良好,但其中的一些新功能WorkManager会派上用场(例如链接)。

我当前的系统使用 sharedLiveData将正在进行的作业的进度传达给RecyclerView观察它的任何 UI 元素(在我的情况下)(我实际上是 SwitchMappingViewModel到 s 列表中SyncItem

WorkManager组件有多种方法(getStatusByIdgetStatusesByTag等)可用于检索带有一个或多个WorkStatuses 的 LiveData,但这些仅报告课程粒度状态(运行、成功、失败、已取消)。

向 UI 传达进度(例如“已下载 546/1234 个项目”)的推荐方式是什么?setOutputData/getOutputData对似乎更多地用于 s 之间的通信(Worker链接时我需要)而不是 UI。

附件是用户打开同步状态页面(已完成 2 个项目,正在进行中)时的屏幕截图(在我的应用程序的 [测试] 版本中使用我的旧方法)。

正在同步的屏幕截图

在最终产品中,用户将能够取消任何正在进行的工作并重新发出一次性工作请求。通常这些工作会被解雇PeriodicWorkRequest

0 投票
1 回答
293 浏览

android - 在 Worker 中使用 dagger 2 (如 DbManager)注入对象,在 doWork() 方法中进行 db 操作,#WorkerManager

嗨,我正在我的项目中尝试新的 WorkerManager,但我无法弄清楚如何将我的 DbManager 类注入到我的 TaskWorker 中,以便在 workermanager 的 doWork() 方法中使用 dbmanager。由于 TaskWorker 对象在某些隐藏的内容中创建,也无法弄清楚。

代码示例

>