【发布时间】:2020-04-02 01:58:39
【问题描述】:
我需要在满足条件时取消/删除我的工作。我读过有一个方法 onStopped() 可以被覆盖,但它适用于简单的 :Worker 而不是 CoroutineWorker。
我的工人:
class MyJob(appContext: Context, params: WorkerParameters) :
CoroutineWorker(appContext, params) {
override suspend fun doWork(): Result {
val itemId = inputData.getLong("item_id",0)
val itemDao = ItemDB.getInstance(applicationContext).itemDao()
val itemRepository = ItemRepo(itemsDao)
val item = itemRepository.getItemById(itemId)
val newValue = item.a + item.b
item.a = newValue
itemRepository.updateItem(item)
if(item.a == item.c){
WorkManager.getInstance(applicationContext).cancelUniqueWork("TEST_WORKER")
}
return Result.success()
}
}
编辑: 我的错,我忘了说这是一部独特的周期性作品。
【问题讨论】:
标签: android kotlin android-workmanager