
В Android 16 представлен новый шаблон уведомлений, который помогает пользователям беспрепятственно отслеживать весь процесс от начала до конца. Эти уведомления имеют улучшенную видимость на системных панелях и занимают верхние позиции в панели уведомлений.
Используйте Notification.ProgressStyle для стилизации уведомлений, отображающих прогресс. Ключевые примеры использования включают сервисы совместных поездок, доставки и навигации. В рамках этого класса вы можете обозначать состояния и этапы пользовательского пути с помощью точек и сегментов.
Соответствующие классы
Следующие классы содержат различные API, которые вы используете для создания уведомления ProgressStyle :
Анатомия и персонализация
На следующих изображениях показаны различные компоненты, из которых состоят уведомления ProgressStyle :

А. Заголовок - Подтекст | |
Б. Заголовок - Время | |
C. Название контента | |
D. Содержание текста | |
E. Индикатор выполнения | |
F. Кнопка действия |

Передовые методы
Используйте подходящие API и следуйте передовым практикам, чтобы обеспечить наилучший пользовательский опыт при обновлении информации о ходе работы.
- Настройте поля таким образом, чтобы они соответствовали требованиям к видимости в панели уведомлений.
- Используйте подходящие визуальные элементы, чтобы направлять пользователей. Например, приложения для совместных поездок должны устанавливать изображение автомобиля и использовать наиболее точный цвет автомобиля в уведомлении, используя
Notification#setLargeIcon. - Используйте краткий и понятный язык для описания хода пользовательского взаимодействия. Время прибытия, имя водителя и состояние поездки — важный текст, который должно передавать уведомление.
- Включите в уведомление полезные и актуальные действия, которые упростят взаимодействие пользователя с сайтом. Например, добавление кнопок «Чаевые» и «Добавить блюдо» к новому заказу на доставку еды — полезные действия перед доставкой.
- Для обозначения состояний используйте сегменты и точки . Например, сегменты могут окрашивать состояние и продолжительность пробки в поездке на сервисе совместных поездок. Точки представляют состояния для таких этапов, как приготовление еды, доставка и посадка пассажира.
- Обновите отображение хода выполнения задания, чтобы оно точно отражало фактическое продвижение по маршруту. Например, изменения дорожной ситуации могут быть отражены в изменении цвета сегментов и обновлении текста.
Следующий фрагмент кода демонстрирует, как можно использовать уведомление ProgressStyle в контексте сервиса совместных поездок:
var ps =
Notification.ProgressStyle()
.setStyledByProgress(false)
.setProgress(456)
.setProgressTrackerIcon(Icon.createWithResource(appContext, R.drawable.ic_car_red))
.setProgressSegments(
listOf(
Notification.ProgressStyle.Segment(41).setColor(Color.BLACK),
Notification.ProgressStyle.Segment(552).setColor(Color.YELLOW),
Notification.ProgressStyle.Segment(253).setColor(Color.WHITE),
Notification.ProgressStyle.Segment(94).setColor(Color.BLUE)
)
)
.setProgressPoints(
listOf(
Notification.ProgressStyle.Point(60).setColor(Color.RED),
Notification.ProgressStyle.Point(560).setColor(Color.GREEN)
)
)
См. [пример приложения][8]{:.external}, чтобы поэкспериментировать с этими API.