Текущее уведомление не отменяется - PullRequest
0 голосов
/ 04 декабря 2018

Мы используем jobScheduler для запуска периодического сетевого вызова, результаты которого публикуются в текущем уведомлении о погоде.

Вот как мы создаем уведомление внутри jobService:

private fun createNotification(selectedLocation: City) {
        val resultIntent = Intent(context, SplashActivity::class.java)
            resultIntent.putExtra(AppConstants.IS_ONGOING, true)
            resultIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)

            val resultPendingIntent = PendingIntent.getActivity(context, 0, resultIntent, 0)
            val notificationView = getComplexNotificationView(selectedLocation) ?: return

            val notification = NotificationCompat.Builder(context, context.packageName)
                    .setPriority(NotificationCompat.PRIORITY_LOW)
                    .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
                    .setSmallIcon(getSmallIconResource(context,
                            if (settings.isFahrenheitEnabled())
                                selectedLocation.currentObservation!!.tempF!!
                            else
                                selectedLocation.currentObservation!!.tempC!!))
                    .setVibrate(null)
                    .setWhen(System.currentTimeMillis())
                    .setCustomContentView(notificationView)
                    .setContentIntent(resultPendingIntent)
                    .setOngoing(true)
                    .setAutoCancel(false)
                    .setGroup(AppConstants.NOTIFICATION_GROUP_ONGOING)
                    .build()

            NotificationManagerCompat.from(context).notify(ONGOING_NOTIFY_ID, notification)
    }

В настройках нашего приложения пользователь может отключить текущее уведомление.Вот как мы пытаемся отменить его:

val jobScheduler: JobScheduler? = getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler
jobScheduler?.cancel(OngoingNotificationJobService.ONGOING_JOB_ID)

NotificationManagerCompat.from(context).cancel(OngoingNotificationJobService.ONGOING_JOB_ID)

Проблема:

При отмене вызова уведомление не сбрасывается.Что я делаю не так?

1 Ответ

0 голосов
/ 04 декабря 2018

Вы должны "NotificationManagerCompat.from (context) .cancel ()" использовать свой предыдущий ONGOING_NOTIFY_ID, а не ONGOING_JOB_ID;)

...