Отследать прерывание или fail внутри WorkManager

Есть WorkManager для загрузи данных с прогрессом в уведомлениях с кнопкой прервать. По выполнению показывает сообщение о удачном выполнении. Но при прерывании, это сообщение пересоздаётся и я немогу его ничем подменить. Как можно внутри CoroutineWorkManger отследить Fail and Canceled statuses? Что бы можно было установить соответствующие уведомления? Внутпри приложения вешать слушатель не вариант, приложение на момент завершения выполнения может быть закрыто. Уведомление создаётся вот так:

protected fun createForegroundInfo(
    message: String,
    progress: Int = 0,
    maxProgress: Int = 0,
    isPrepare: Boolean = false
): ForegroundInfo {
    val id = applicationContext.getString(R.string.notification_channel_id)
    val title = applicationContext.getString(R.string.vital_app)
    val cancel = applicationContext.getString(R.string.abort_button)
    val intent = WorkManager.getInstance(applicationContext)
        .createCancelPendingIntent(getId())

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        notificationManager.createNotificationChannel(
            Utils.getNotificationChannel(
                applicationContext
            )
        )
    }

    val notification = NotificationCompat.Builder(applicationContext, id)
        .setContentTitle(title)
        .setTicker(title)
        .setContentText(message)
        .setProgress(maxProgress, progress, isPrepare)
        .setSmallIcon(R.mipmap.ic_launcher)
        .setOngoing(true)
        .setSound(null)
        .addAction(R.drawable.ic_delete, cancel, intent)
        .build()

    return ForegroundInfo(NOTIFICATION_ID, notification)
}

Ответы (0 шт):