Обновление уведомления службы переднего плана задерживает остановку службы - PullRequest
1 голос
/ 31 января 2020

Я загружаю файл с помощью службы переднего плана, но когда я приостанавливаю загрузку, я хочу остановить службу, поэтому я сделал следующее:

, запустив службу

val intent = Intent(context, IdmService::class.java)
context.startService(intent)
context.bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE)

остановка службы

context.unbindService(serviceConnection)
context.stopService(Intent(context, IdmService::class.java))

обновление уведомлений

private fun updateInfo(title: String, downloadedSize: Long, totalSize: Long) {
    notification.setContentTitle(title)
    notification.setContentText("${formatBytes(downloadedSize)}/${formatBytes(totalSize)}")
    notification.setContentInfo(downloadSpeed)
    notification.setProgress(100, progress, false)
    startForeground(STICKY_NOTIFICATION_ID, notification.build())
}

Но когда я прекращаю службу, требуется 5 секунд, чтобы скрыть уведомление. Я попытался прокомментировать startForeground(STICKY_NOTIFICATION_ID, notification.build()), тогда он мгновенно скрыл уведомление. Я хочу скрыть уведомление мгновенно, когда я прекращаю службу. Я считаю, что метод startForeground является асин c, поэтому после того, как я убил, служба ожидает завершения метода startForeground.

1 Ответ

0 голосов
/ 30 апреля 2020

Похоже, это связано с последним исправлением безопасности:

Это ожидаемое поведение, если у вас установлено последнее исправление безопасности - уведомления FGS должны быть видны не менее 5 секунд

https://issuetracker.google.com/issues/147792378

...