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