簡體   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