В Android 16 появился новый шаблон уведомлений, который помогает пользователям отслеживать запущенные ими процессы от начала до конца. Такие уведомления лучше видны на системных экранах и занимают верхние позиции на панели уведомлений.
Используйте Notification.ProgressStyle, чтобы стилизовать уведомления о ходе выполнения.
Основные примеры использования: совместные поездки, доставка и навигация. Внутри этого класса вы можете обозначать состояния и этапы пути пользователя с помощью точек и сегментов.
Релевантные классы
В следующих классах содержатся различные API, которые используются для создания уведомлений ProgressStyle:
Структура и настройка
На изображениях ниже показаны разные части уведомлений ProgressStyle.
A. Заголовок – подтекст |
|
B. Заголовок – время |
|
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)
)
)
Чтобы поэкспериментировать с этими API, воспользуйтесь примером приложения.