Создайте уведомление, ориентированное на прогресс

уведомление о ходе выполнения (верхний оттенок)
Рисунок 1. Уведомление о ходе выполнения в верхней части панели.

В Android 16 представлен новый шаблон уведомлений, который помогает пользователям беспрепятственно отслеживать весь процесс от начала до конца. Эти уведомления имеют улучшенную видимость на системных панелях и занимают верхние позиции в панели уведомлений.

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

Соответствующие классы

Следующие классы содержат различные API, которые вы используете для создания уведомления ProgressStyle :

Анатомия и персонализация

На следующих изображениях показаны различные компоненты, из которых состоят уведомления ProgressStyle :

Рисунок 2.

А. Заголовок - Подтекст

Notification.Builder#setSubText()

Б. Заголовок - Время

Notification.Builder#setWhen()

C. Название контента

Notification.Builder#setContentTitle()

D. Содержание текста

Notification.Builder#setContentText()

E. Индикатор выполнения

Notification.ProgressStyle

F. Кнопка действия

Notification.Builder#addAction()

Рисунок 3. Приложения могут устанавливать изображение транспортного средства для значка отслеживания и использовать сегменты и точки для обозначения опыта использования сервиса совместных поездок и этапов.

Передовые методы

Используйте подходящие 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.