Приветствую!
При использовании WorkManager я столкнулся с проблемой того, что статус операции не удаляется поле прочтения.
Вот инициализации операции
private fun saveCashCommandSchedule() {
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build()
val work = OneTimeWorkRequestBuilder<WorkSynchronizeCashSchedule>()
.setConstraints(constraints)
.build()
WorkManager.getInstance().enqueueUniqueWork("send_cash_schedule", ExistingWorkPolicy.REPLACE, work)
}
Вот я подключая слушателя для отслеживания состояния операции
fun subscribeWorkScheduleCash(lifecycle: Lifecycle) {
WorkManager.getInstance().getWorkInfosForUniqueWorkLiveData("send_cash_schedule").observe({
lifecycle
}, { states ->
states?.forEach {
if (it != null && it.state == WorkInfo.State.SUCCEEDED) {
//TODO вот этой строки хотелось бы избежать
// WorkManager.getInstance().pruneWork()
loadData()
return@observe
}
}
})
}
Каждый раз, когда я подключаю слушателя, старый статус всплывает. Мне надо его как-то удалить.
Использование WorkManager.getInstance().pruneWork() не выход, так как он удаляет все статусы всех операций, которые завершили свою работу.
Подскажите, пожалуйста, как убрать статусы.