繁体   English   中英

如何在WorkManager Android(kotlin)中仅运行特定的工作程序

[英]How to run only specific worker in WorkManager Android (kotlin)

我有一些针对工作人员的脚本,每当我尝试执行一个特定的工作人员时,它都会执行我拥有的所有脚本工作人员。

这是我运行脚本工作器的方式:

val stockTakingSync = PeriodicWorkRequest.Builder(
            UploadStockTakingSyncWorker::class.java,
            interval,
            TimeUnit.MILLISECONDS)
            .setConstraints(myConstraints)

    val stockTakingSyncWork = stockTakingSync.build()
    WorkManager.getInstance()?.enqueue(stockTakingSyncWork)

但这是我得到的回报:

07-22 07:35:08.789 1327-1387/com.mockie.daikokuten D/:dump doSync: PrdPriceSyncWorker called
07-22 07:35:08.796 1327-1386/com.mockie.daikokuten D/:dump doSync: PrdSizeWorker called
07-22 07:35:08.803 1327-1388/com.mockie.daikokuten D/:dump doSync: PrdTypeSyncWorker called
07-22 07:35:10.120 1327-1404/com.mockie.daikokuten D/:dump doSync: PrdTypeSyncWorker called
07-22 07:35:10.123 1327-1386/com.mockie.daikokuten D/:dump doSync: PrdSizeWorker called

如您所见,所有工作程序也都被执行了。

观察了一会之后,似乎WorkManager.getInstance()?.enqueue(stockTakingSyncWork)也触发了您之前已经注册的所有先前计划/排队的任务

即使您已经删除了运行WorkManager的所有脚本,也不能仅通过按RUN APPDEBUG APP取消/删除任何setPeriodicSync 您必须取消安装该应用程序才能摆脱以前的任何排队任务。

这是一个错误,我们alpha05修复为alpha05一部分。 仅对于PeriodicWorkRequest会发生这种情况。 有关更多信息,请访问https://issuetracker.google.com/issues/111195153

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM