Создаём уведомления в Android. Часть 6. Приоритет уведомлений

В этой статье из цикла посвящённого уведомлениям в Android мы поговорим об их приоритете.

Что же такое приоритет уведомлений и на что он влияет?

На самом деле приоритет уведомления определяет его место в списке уведомлений при их просмотре. То есть, когда пользователь развернёт верхнюю «шторку» чтобы посмотреть поступившие уведомления, уведомление с более высоким приоритетом будет отображаться выше, чем остальные, даже если оно поступило позже.

Разумеется, выбор приоритета для уведомления должен быть обоснован. Не стоит злоупотреблять высоким приоритетом уведомлений.

Впервые приоритет уведомлений появился в API 16 (Android 4.1) и был реализован при помощи метода setPriority (для Java), который принимал в качестве параметра одну из следующих констант (приводятся в порядке уменьшения приоритета): NotificationCompat.PRIORITY_MAX, NotificationCompat.PRIORITY_HIGH, NotificationCompat.PRIORITY_DEFAULT, NotificationCompat.PRIORITY_LOW, NotificationCompat.PRIORITY_MIN.

В Kotlin для управления приоритетом вместо метода setPriority служит свойство priority, которому присваивается в качестве значения одна из вышеперечисленных констант.

Начиная с API 21 (Android 5.0) уведомления с приоритетами NotificationCompat.PRIORITY_MAX и NotificationCompat.PRIORITY_HIGH, при вызове сначала появляются в виде плавающего окна в верхней части экрана, а только потом закрываются и остаются в виде обычных уведомлений.

Начиная с API 26 (Android 8.0) вместо приоритета стали использовать важность (по-английски — importance) уведомлений.

В связи с этим метод setPriority и свойство priority были переименованы в setImportance и importance соответственно и перемещены в класс NotificationChannel (канал уведомлений). А, в качестве значений стал использоваться следующий перечень констант (в порядке убывания важности): NotificationManager. IMPORTANCE_HIGH, NotificationManager. IMPORTANCE_DEFAULT, NotificationManager. IMPORTANCE_LOW, NotificationManager. IMPORTANCE_MIN.

Пример использования свойства importance:

Однако свойство importance используется скорее для изменения важности уведомлений в ходе работы приложения. Обычно важность уведомлений можно указать сразу при инициализации канала (как это было сделано в самой первой статье):

Также стоит отметить, что помимо вышеперечисленных констант по аналогии с NotificationCompat.PRIORITY_MAX существует NotificationManager.IMPORTANCE_MAX, но использование этой константы в данный момент запрещено на уровне SDK.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *