Помимо обычных уведомлений можно создать так называемые текущие и настойчивые уведомления.
Текущие уведомления предназначены для отображения процессов, которые осуществляются в данный момент (например, фоновое воспроизведение музыки или загрузка файла). В развёрнутой статусной строке такие уведомления обычно отделены от обычных, чтобы пользователю было проще их заметить и работать с ними.
Текущие уведомления необходимы для служб, работающих на переднем плане.
Настойчивые уведомления используются в случае, если от пользователя требуется немедленная реакция на них. Такие уведомления повторяют предусмотренные для них сигналы (звук, вибрация, светодиодная индикация) непрерывно до тех пор, пока пользователь не совершит соответствующие действия.
В частности, настойчивые уведомления для таких событий как телефонные звонки или сигналы будильника.
Уведомления можно сделать текущими или настойчивыми при помощи флагов FLAG_ONGOING_EVENT и FLAG_INSISTENT соответственно.
Пример текущего уведомления:
1 |
notification.flags = Notification.FLAG_ONGOING_EVENT |
Настойчивое уведомление создаётся аналогичным образом, но в старых версиях Android может потребоваться флаг FLAG_ACTIVITY_NEW_TASK для метода getActivity.
1 2 3 4 5 6 7 8 9 |
notification.flags = Notification.FLAG_INSISTENT // Только для старых версий Android val flags = PendingIntent.FLAG_CANCEL_CURRENT or Intent.FLAG_ACTIVITY_NEW_TASK val contentIntent = PendingIntent.getActivity( this, 0, notificationIntent, flags ) |
В новых версиях Android флаг FLAG_ACTIVITY_NEW_TASK не нужен и более того там его установка запрещена на уровне SDK.
Добавить комментарий