簡體   English   中英

如何為Worker排隊任務(WorkerManager API)?

[英]How to queue tasks for Worker (WorkerManager API)?

我有很多要求

fun foo(){
....
WorkManager.getInstance(iC)
            .beginWith(downloadWorkRequest)
            .then(unzipWorkRequest)
            .then(deleteWorkRequest)
            .enqueue()
 .....
 }

整個任務(比如說)要花費1分鍾...問題是,如果我在一分鍾內調用此方法幾次(例如4次),那么WorkManager實際上將異步地啟動此任務4次。

我需要所有這些任務都將同步執行(例如隊列)。

怎么做?

在這種情況下,您可以通過ExistingWorkPolicy.APPEND使用唯一的作品

fun foo(){
....
WorkManager.getInstance(iC)
           .beginUniqueWork(
               "my_unique_work_name",
               ExistingWorkPolicy.APPEND,
               downloadWorkRequest)
           .then(unzipWorkRequest)
           .then(deleteWorkRequest)
           .enqueue()
 .....
 }

您可以在WorkManager代碼實驗室中找到一個示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM