[英]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.