我有一系列请求
fun foo(){
....
WorkManager.getInstance(iC)
.beginWith(downloadWorkRequest)
.then(unzipWorkRequest)
.then(deleteWorkRequest)
.enqueue()
.....
}
整个任务(比如说)需要1分钟...问题是,如果我在一分钟内多次调用此方法(例如4次),那么WorkManager
实际上将启动此任务4次异步地。
我需要所有这些任务都将同步执行(例如队列)。
该怎么做?
答案 0 :(得分:1)
在这种情况下,您可以将unique work与ExistingWorkPolicy.APPEND
一起使用
fun foo(){
....
WorkManager.getInstance(iC)
.beginUniqueWork(
"my_unique_work_name",
ExistingWorkPolicy.APPEND,
downloadWorkRequest)
.then(unzipWorkRequest)
.then(deleteWorkRequest)
.enqueue()
.....
}
您可以在WorkManager codelab中找到一个示例。