![](/img/trans.png)
[英]Android - How to limit number of specific Worker instances running in parallel in WorkManager?
[英]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 APP
或DEBUG APP
取消/删除任何setPeriodicSync
。 您必须取消安装该应用程序才能摆脱以前的任何排队任务。
这是一个错误,我们alpha05
修复为alpha05
一部分。 仅对于PeriodicWorkRequest
会发生这种情况。 有关更多信息,请访问https://issuetracker.google.com/issues/111195153
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.