Что такое notification на андроид

Обновлено: 05.05.2024

Рассказываем, как отфильтровать информационный шум и при этом не пропустить ничего важного на устройствах с Android.

Какие уведомления лучше оставить

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

Предложения обновить операционную систему и установленные приложения. Такие апдейты часто закрывают уязвимости и защищают вас от киберпреступников.

Уведомления антивируса. Вы же не хотите пропустить сигнал о подозрительном сайте или опасном вложении в письме?

Остальной информационный шум, как правило, можно смело ставить на паузу — или полностью отключить уведомления, или сделать их беззвучными, чтобы они не отвлекали вас от того, чем вы в данный момент занимаетесь, — и вот как это сделать в смартфоне или планшете c Android.

Настраиваем уведомления на устройствах с Android

Многие производители проектируют интерфейсы на свой лад, поэтому меню могут различаться в зависимости от устройства. Но общий принцип, как правило, не меняется.

Отключаем уведомления на Android: все и сразу

В меню настроек вашего смартфона есть отдельный пункт, который отвечает за оповещения от приложений. Логично путь к цифровому благополучию начать именно с него:

  • Откройте Настройки (или Параметры).
  • Введите Уведомления в строку поиска или вручную найдите этот пункт в меню.
  • По очереди выбирайте приложения и настраивайте их уведомления.

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

Отключаем уведомления на Android: решаем проблемы по мере поступления

Преимущество этого метода в том, что вам не придется сразу разбираться со всеми установленными приложениями и можно будет настроить в первую очередь те, которые вам реально мешают.

Переводим звонки и уведомления в беззвучный режим

Допустим, вы отключили все лишнее, но ближайшие пару часов вам очень важно провести в полной и абсолютной тишине? Блокировать важные уведомления, а потом мучительно включать их обратно, опасаясь потерять что-то важное, можно, но не нужно. Для таких случаев есть отдельный инструмент: режим Не беспокоить. В нем ваш телефон не будет подавать никакие сигналы — пока вы не вернетесь в обычный режим.

В настройках режима Не беспокоить можно заблокировать все звуки и вибрацию. На всякий случай по умолчанию работает правило повторных вызовов — если в течение 15 минут кто-то попробует позвонить вам два раза подряд, о входящем звонке будет сигнализировать оповещение в шторке уведомлений (а если вы не отключаете вибрацию — то и она). Здесь же можно установить расписание, чтобы функция Не беспокоить включалась и выключалась автоматически — например, вечером и утром.

Если же вы, наоборот, хотите убрать из исключений какой-либо тип оповещений, например сигнал будильника, это можно сделать в том же разделе.

Другие советы для цифрового спокойствия

Помимо общих настроек, в Android предусмотрен специальный режим концентрации внимания. Он включается в разделе Цифровое благополучие и родительский контроль. Здесь вы можете запретить приложениям присылать уведомления, а заодно и вовсе запускаться в определенные часы и дни недели.

Мир и покой. Что дальше?

Кроме Toast-уведомлений, существует также другой тип уведомлений, который выводится за пределами вашего приложения, а именно, в верхней части телефона в системной строке состояния в виде значка с небольшим текстом.

Далее пользователь должен сдвинуть строку состояния экрана, чтобы увидеть расширенную информацию об уведомлении - текст, картинку. Также можно прямо в уведомлении сделать какое-то действие - написать ответ, поставить на паузу музыку и т.п. Для привлечения внимания к уведомлению можно подключить звук и вибрацию.

Обратите внимание, что в имени класса спрятан кот (Notification), что намекает на целевое использование уведомлений. Уведомляйте пользователя только о самом важном, например, что пора кормить кота.

Cat

Этот вид уведомления удобен в том случае, когда приложение работает в фоновом режиме и должно уведомить пользователя о каком-либо важном событии. Фоновое приложение создаёт уведомление в строке состояния, но не запускает активность самостоятельно для получения пользовательского взаимодействия. Это должен сделать только сам пользователь в удобное ему время.

Чтобы создать уведомление в строке состояния, необходимо использовать два класса:

Показываем уведомление

Добавим на экран активности кнопку и напишем для демонстрации работы уведомления.

Для начала вам надо создать идентификатор уведомления. Он нужен, чтобы можно было различать уведомления друг от друга. Ведь вы можете создать идеальное приложение, которое уведомляло бы хозяина, что кота надо покормить (первое уведомление), погладить (второе уведомление), почистить лоток (третье уведомление). Если у вас будет один идентификатор, то каждое новое уведомление затрёт предыдущее и хозяин не увидит свои недоработки. Это не дело. Для идентификатора используйте какое-нибудь число. Только не надо оригинальничать, ничего не имею против числа 836, но вам определённо нужно сходить к психологу.

Также следует создать идентификатор канала. Каналы появились в API 26, но старые устройства будут просто игнорировать данный параметр при вызове конструктора NotificationCompat.Builder.

Далее формируется внешний вид и поведение уведомления через построитель NotificationCompat.Builder. Вы можете задать текст уведомления, значок, заголовок и прочие атрибуты. Для простого примера оставил минимальный набор настроек.

Выводится уведомление с помощью метода notify() - своеобразный аналог метода show() у Toast из предыдущего урока.

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

Запустим пример и нажмём кнопку. В строке состояния появится значок. Раскроем уведомление и увидим текст. Уведомление можно смахнуть в сторону для удаления.

Notification
Notification

Реакция на уведомления

Нажатие на уведомление ни к чему не приведёт. Нужен дополнительный код.

Создадим новые объекты Intent и PendingIntent, которые описывают намерения и целевые действия. В нашем случае мы хотим запустить нашу активность, когда пользователь среагирует на уведомление. Присоединяем объекты через setContentIntent().

Теперь можно создать уведомление и затем закрыть приложение. Если нажать на уведомление, оно откроет заново ваше приложение.

Сделаем уведомление более красивым, добавив другие необязательные настройки.

Notification

Как я уже упоминал, если вам нужно обновить уведомление, то просто ещё раз отправьте его устройству под этим же идентификатором, но с другим текстом и картинкой.

Если уведомления разного типа, то нужно обновлять идентификаторы. Вспомним урок по подсчёту ворон и изменим код.

Теперь будут появляться новые уведомления. Обычно выводятся три значка для одного приложения (на новых устройства), потом они группируются и на экране остаётся только один значок. Проверьте самостоятельно.

Совсем не обязательно запускать своё приложение, хотя это является распространённой практикой. Можете задать нужное поведение, например, запустить свой сайт по указанному адресу. Переделаем код:

Можно вывести индикатор прогресса, чтобы указать текущий ход выполнения задачи. Можно установить бесконечное выполнение:

Удаление собственных уведомлений

Вы можете из программы удалить своё уведомление, посланное по глупости (не вздумайте удалять уведомления про кормёжку кота!).

Если уведомления с указанным идентификатором не будет, то ничего страшного при удалении не произойдёт, поэтому проверку не нужно устраивать.

Использование настроек по умолчанию

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

  • Notification.DEFAULT_LIGHTS
  • Notification.DEFAULT_SOUND
  • Notification.DEFAULT_VIBRATE

Чтобы к уведомлению добавить звук и вибрации по умолчанию, используйте код:

Если хотите установить сразу все значения по умолчанию, задействуйте константу Notification.DEFAULT_ALL.

Звуковое сопровождение

Также можно использовать собственный звуковой файл, загруженный на устройстве или добавленный в проект в качестве ресурса.

Виброзвонок

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

Чтобы использовать виброзвонок, передайте в свойство vibrate объекта Notification массив значений типа long. Постройте массив, учитывая, что значения, отвечающие за продолжительность вибрации (в миллисекундах), чередуются со значениями, которые означают длину паузы между вибрациями.

Прежде чем использовать виброзвонок в своем приложении, необходимо получить нужные полномочия, прописав их в манифесте:

В следующем примере показано, как изменить уведомление, чтобы одна секунда вибрации сменялась одной секундой паузы на протяжении пяти секунд:

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

Светодиодная индикация

Объект Notification включает в себя свойства для настройки цвета и частоты мерцания светодиодов устройства. Здесь стоит обратить внимание, что конкретные модели устройств могут не содержать светодиодные индикаторы или иметь другие цвета.

Свойство ledARGB может устанавливать цвет для светодиодной подсветки. Свойства ledOffMS и ledOnMS позволяют регулировать частоту и поведение светодиодов. Вы можете включить светодиоды, присвоив свойству ledOnMS значение 1, а ledOffMS – 0. Присвоив им обоим значения 0, светодиоды можно выключить.

Настроив работу со светодиодами, необходимо также добавить флаг FLAG_SHOW_LIGHTS к свойству flags объекта Notification.

В следующем фрагменте кода показано, как включить на устройстве красный светодиод:

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

Текущие и настойчивые уведомления

Вы можете делать уведомления текущими и/или настойчивыми, устанавливая флаги FLAG_INSISTENT и FLAG_ONGOING_EVENT. Уведомления, помеченные как текущие, используются для представления событий, которые выполняются в данный момент времени (например, загрузка файла, фоновое проигрывание музыки). Текущие уведомления необходимы для сервисов, работающих на переднем плане. Пример установки флагов:

В расширенной статусной строке текущие события отделены от обычных, чтобы вы сразу могли их отличить.

Настойчивые уведомления непрерывно повторяют звуковые сигналы, вибрируют и мерцают светодиодами, пока не будут остановлены. Подобные уведомления, как правило, используются для событий, которые требуют немедленного и своевременного внимания, таких как входящий звонок, срабатывание будильника или время кормёжки кота. В следующем фрагменте кода показано, как сделать уведомление настойчивым:

В методе getActivity() может понадобиться изменить флаг, например.

Существуют и другие флаги. Хотя в большинстве случаев используется просто 0.

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

Уровень оповещений

Запустить запущенную активность

Не сразу бывает заметно, но на самом деле, когда при нажатии на уведомлении у вас запускается активность, то запускается не старая активность, которая была на экране до этого, а новая. Это можно увидеть в примере, если, например, есть текстовое поле с текстом. Введите какой-нибудь текст в активности, а потом создайте уведомление, вызывающее активность. Вы увидите, что запустится новая активность с пустыми текстовым полем, хотя мы ожидали увидеть запущенную активность. Если вам нужен именно этот вариант, то используйте флаги для намерения.

Либо вы можете прописать в манифесте для нужной активности атрибут android:launchMode="singleTop".

Меняем цвет значка

По умолчанию, значок выводится в сером круге. Вы можете изменить цвет круга, вызвав новый метод setColor(), который появился в API 21:


Анимированный значок для уведомления

Покажу один фокус. Возьмём код из примера и заменим одну строчку, которая отвечает за вывод маленького значка - .setSmallIcon(android.R.drawable.stat_sys_upload):

Анимированный значок для уведомлений

Возможно, если вы опустите метод setTicker(), то значок уже не будет анимированным, где-то работало, где-то нет. Проверяйте самостоятельно.

Вы можете попробовать поискать другие системные анимации, например, android.R.drawable.stat_sys_download или создать собственную анимацию.

Расширенные возможности уведомлений

В Android 4.1 Jelly Bean появились дополнительные возможности для уведомлений через настройку стилей.

Добавьте на экран четыре кнопки.

Уведомление с тремя кнопками

Начнём с первого варианта. Теперь в уведомлениях можно размещать до трёх кнопок. Это может быть удобным, если приложение состоит из нескольких активностей или нужно предложить три разных варианта развития сценария. За появление кнопок в уведомлении отвечает метод setAction().

setAction()

Обратите внимание, что у кнопок текст может обрезаться и пользователь не увидит текст, поэтому вам следует придумать "говорящие" значки, по которым будет понятен смысл нажатия. В нашем примере при нажатии на любой из трёх кнопок запустится вторая активность.

На некоторых устройствах можно увидеть уведомление без значков и с текстом. Также были варианты, когда выводились только значки.

setAction()

Уведомление с длинным текстом. BigTextStyle().bigText()

Если вы внимательно смотрели на уведомление, то могли увидеть, что длинный текст, помещённый в метод setContentText(), вывелся на экран не полностью. Если информация слишком важная и вам хочется её показать в уведомлении полностью, то подойдёт вариант со стилем BigTextStyle:

BigTextStyle

Уведомление с большой картинкой: BigPictureStyle().bigPicture()

Пример с большой картинкой аналогичен с предыдущим примером. Только мы задаём уже другой стиль для уведомления. Вместо стиля длинного текста используется стиль BigPictureStyle().bigPicture():

BigPictureStyle

Слишком большая картинка будет обрезана.

Уведомление в стиле InboxStyle

InboxStyle

Уведомление в стиле мессенджера: MessagingStyle

У класса Person есть другие полезные методы: setIcon() (значок), setData() (картинки) и др.

В setConversationTitle() указываем название беседы, удобно при разговоре двух и более котов. В поздних версиях не имеет эффекта, можно убрать.

MessagingStyle

Подводя итоги, следует отметить, у уведомлений очень много методов, которые можно использовать в своём приложении. Вот как может выглядеть полный набор:

  • setSmallIcon() устанавливает маленький значок, который выводится в строке состояния, а также в правой части открытого уведомления.
  • setLargeIcon() устанавливает большой значок, который выводится в открытом уведомлении слева.
  • setWhen() определяет время для уведомления, по умолчанию время создания уведомления
  • setTicker() выводит временную строку в строке состояния, которая затем исчезает. Остаётся только маленький значок (см. выше)
  • setNumber() добавляет число справа от уведомления (не везде работает)
  • setShowWhen() - показывать ли время в уведомлении (в Android 7.0 по умолчанию не показывается)
  • setUsesChronometer() выводит счётчик вместо времени, показывающий сколько прошло от времени when. Полезно для уведомления секундомера или звонка
  • setContentInfo() добавляет текст справа от уведомления (в новых версиях сверху)
  • setColor() закрашивает значок и название приложения указанным цветом
  • setOngoing() выводит уведомление поверх обычных уведомлений, такое уведомление нельзя закрыть или смахнуть.
  • setVibrate() - виброзвонок
  • setSound() - звук
  • setLights() - цвет LED-индикатора
  • setPriority() устанавливает приоритет от -2 (NotificationCompat.PRIORITY_MIN) до 2 (NotificationCompat.PRIORITY_MAX)
  • setTimeoutAfter() (появилось в API 26) - устанавливает таймаут, после которого уведомление удалится
  • setProgress() - индикатор прогресса

Приоритет

В API 16 появился новый метод setPriority() с константами по мере увеличения: NotificationCompat.PRIORITY_MIN, NotificationCompat.PRIORITY_LOW, NotificationCompat.PRIORITY_DEFAULT, NotificationCompat.PRIORITY_HIGH, NotificationCompat.PRIORITY_MAX.

В Android 5.0 произошли небольшие изменения в поведении. Если установлены максимальные приоритеты Notification.PRIORITY_HIGH или Notification.MAX, то при вызове сначала уведомление появится в виде плавающего окна в верхней части экрана, а только потом закроется и останется в виде стандартного уведомления в строке состояния.


В Android 8.0 вместо приоритетов стали использовать важность - IMPORTANCE_XXX.

Напоследок дам совет - читайте документацию. Google постоянно вносит какие-то изменения и добавления. Практически в каждой новой версии Android что-то менялось. Я не в состоянии отслеживать новинки и оперативно добавлять в статью.

Пример изменений, которые произошли в API 23:

  • Удалили метод setLatestEventInfo()
  • Добавили новые методы getLargeIcon() и getSmallIcon()
  • Добавили новое поле класса CATEGORY_REMINDER и объявили устаревшими поля icon и largeIcon.

В уведомлениях можно использовать собственный макет, используя RemoteViews. Для стилизации макета изучите классы DecoratedCustomViewStyle и DecoratedMediaCustomViewStyle. Подключается через метод setCustomContentView().

NotificationListenerService. Прослушка уведомлений

В API 18 (Android 4.3) появился новый класс NotificationListenerService, позволяющий следить за уведомлениями. С тех пор я следил за этой темой. Материал был написан по горячим следам в 2015 году. Если не работает, то разбирайтесь самостоятельно.

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

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

У службы есть два метода onNotificationPosted() и onNotificationRemoved() с параметром StatusBarNotification, который содержит полезные методы об уведомлении.

Пользователь должен явно разрешить приложению следить за уведомлениями через Настройки | Безопасность. Если на устройстве нет приложений, которые следят за уведомлениями, то в настройках вы не увидите никаких пунктов о разрешении. Когда вы создадите такое приложение, то там появится новый пункт Доступ к уведомлениям.

NotificationListenerService

Щёлкнув на нём, вы попадёте на страницу со списком программ, желающих следить за уведомлениями. Поставим флажок у своей программы.

NotificationListenerService

NotificationListenerService

После этого в настройках будет указано число приложений, имеющих соответствующее разрешение.

NotificationListenerService

Перейдём к практической части. Подготовим разметку из нескольких кнопок и текстовой метки для вывода информации.

Создадим новую службу.

В манифесте добавляем новый блок.

Первая кнопка запускает уведомление, чтобы увидеть, что приложение работает. Если вы хотите увидеть, как приложение следит за другими уведомлениями, то запустите Play Market и скачайте какую-нибудь игру или программу. Во время скачивания и установки генерируются уведомления. На следующем скриншоте видны уведомления от приложения Загрузки во время скачивания (com.android.providers.downloads) и от процесса установки (com.android.vending).

NotificationListenerService

Вы можете программно запустить раздел с разрешением на использование службы.

В наши дни уведомления стали обыденностью, но для большинства пользователей эта обыденность совсем не из приятных. Чем бы вы не занимались и какой бы деловой не были, бесконечный поток уведомлений может вывести из себя любого. Да, можно легко включить режим “Не беспокоить” и это в какой-то степени решит проблему, но это решение не идеально, ведь вы можете положить телефон на стол или в сумку и забыть про него, пропустив впоследствии какое-нибудь важное уведомление. Решение у этой непростой, но насущной, проблемы есть и мы расскажем о нем в этом материале, так что, если у вас есть немного времени, то лучше потратьте его с пользой прямо сейчас, настроив свои назойливые уведомления, и живите дальше спокойно, словно буддийский монах.


Примечание: все советы по настройке уведомлений в этом материале могут быть сделаны на ОС Android версии Oreo и выше.

Блокируем ненужные категории уведомлений

Доступ к категориям уведомлений на Android Oreo и выше


Обратите внимание, что получить доступ к этим настройкам можно и двумя другими способами: нажать и удерживать само уведомление, когда вы его получите или несильно спайпнуть уведомление в сторону и нажать на значок шестеренки. Если вы случайно заблокировали какую-то категорию уведомлений и хотите ее вернуть, выполните действия, описанные выше.

Настраиваем поведение уведомлений

После того, как вы определились, какие уведомления вам действительно нужно получать, вы можете изменить способ их получения. По умолчанию все уведомления издают какой-то звук и всплывают в верхней части экрана. Порой такие уведомления могут отвлекать, и чтобы этого не происходило, вы можете перейти в категории уведомлений, как сказано в предыдущем пункте и перейти в пункт “Важность”.

Здесь вы можете отключить звук уведомления или оставить только всплывающее окно без звука. Таким образом, если вы ждете какого-то уведомления, вы узнаете, когда получите его, но оно не отвлечет вас неприятным звуком или всплывшим на половину экрана окном.

Меняем звуки уведомлений

Если вы привыкли и жить не можете без звуковых уведомлений, существует простой способ оптимизировать способ их получения. Установив определенный звук для важных категорий уведомлений, вы можете мгновенно понимать, когда что-то требует вашего внимания, а когда пришедшее уведомление можно смело и без последствий проигнорировать.

На этот раз нам снова понадобится зайти в категории уведомлений, как описано в первом пункте и нажать на пункт “Звук”. Теперь выберите любой рингтон, который у вас сохранен заранее или создайте свой, нажав на значок плюса в конце списка с рингтонами. Со временем вы научитесь определять виды уведомлений по одному только звуку, и если вам понравится такая концепция, вы можете применить те же настройки для входящих вызовов в приложении “Контакты”.

Учимся откладывать важные уведомления на потом

Самые важные уведомления для того и важные, что их необходимо получить и немедленно сделать то, ради чего это уведомление было инициировано. Но даже для важных уведомлений порой настает неподходящее время или, например, настроение. В таком случае уведомление можно отложить на определенный срок и, получив его повторно, наконец, ответить (или снова отложить).

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

Если у вас есть одно из устройств линейки Pixel и вы установили на него бета-версию Android Q, то у вас есть возможность попробовать новую функцию – на новых уведомлениях появляется иконка колокольчика для того, чтобы вы могли отличать свежие уведомления от тех, что томятся в строке состояния уже целую вечность.

Делитесь своим мнением в комментариях под этим материалом и в нашем Telegram-чате.

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

Панель уведомлений Android

Чтобы просмотреть подробности уведомления, вам нужно будет выбрать значок, который будет отображать ящик уведомлений, содержащий подробности об уведомлении. При работе с эмулятором с виртуальным устройством вам нужно будет щелкнуть и перетащить строку состояния вниз, чтобы развернуть ее, что даст вам следующие подробности. Это будет всего 64 dp в высоту и называется нормальным видом.

Деталь уведомлений Android

Выше развернутая форма может иметь большой вид, который будет иметь дополнительную информацию об уведомлении. Вы можете добавить до шести дополнительных строк в уведомлении. На следующем снимке экрана показано такое уведомление.

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

Шаг 1. Создание построителя уведомлений

Первым шагом является создание построителя уведомлений с помощью NotificationCompat.Builder.build () . Вы будете использовать Notification Builder для установки различных свойств уведомлений, таких как маленькие и большие значки, заголовок, приоритет и т. Д.

Маленькая иконка, установленная setSmallIcon ()

Заголовок, установленный setContentTitle ()

Подробный текст, установленный setContentText ()

Маленькая иконка, установленная setSmallIcon ()

Заголовок, установленный setContentTitle ()

Подробный текст, установленный setContentText ()

У вас есть множество дополнительных свойств, которые вы можете установить для вашего уведомления. Чтобы узнать больше о них, см. Справочную документацию для NotificationCompat.Builder.

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

Действие определяется PendingIntent, содержащим Intent, который запускает Activity в вашем приложении. Чтобы связать PendingIntent с жестом, вызовите соответствующий метод NotificationCompat.Builder . Например, если вы хотите запустить Activity, когда пользователь щелкает текст уведомления в ящике уведомлений, вы добавляете PendingIntent, вызывая setContentIntent () .

Объект PendingIntent помогает вам выполнить действие от имени вашего приложения, часто в более позднее время, не заботясь о том, запущено ваше приложение или нет.

Мы воспользуемся объектом стека, который будет содержать искусственный задний стек для запущенного Activity. Это гарантирует, что переход в обратном направлении от действия приводит к тому, что ваше приложение переходит на главный экран.

Наконец, вы передаете объект Notification в систему, вызывая NotificationManager.notify () для отправки вашего уведомления. Убедитесь, что вы вызываете метод NotificationCompat.Builder.build () для объекта компоновщика, прежде чем уведомлять его. Этот метод объединяет все параметры, которые были установлены, и возвращает новый объект уведомления .

Класс NotificationCompat.Builder

Класс NotificationCompat.Builder позволяет легче контролировать все флаги, а также помогает создавать типовые макеты уведомлений. Ниже приведены несколько важных и наиболее часто используемых методов, доступных как часть класса NotificationCompat.Builder.

Построение уведомлений ()

Объедините все параметры, которые были установлены, и верните новый объект уведомления.

NotificationCompat.Builder setAutoCancel (логический autoCancel)

Установка этого флага сделает так, чтобы уведомление автоматически отменялось, когда пользователь щелкает его на панели.

NotificationCompat.Builder setContent (представления RemoteViews)

Предоставьте пользовательский RemoteView для использования вместо стандартного.

NotificationCompat.Builder setContentInfo (информация о CharSequence)

Установите большой текст в правой части уведомления.

NotificationCompat.Builder setContentIntent (намерение PendingIntent)

Укажите PendingIntent для отправки при нажатии на уведомление.

NotificationCompat.Builder setContentText (текст CharSequence)

Установите текст (вторая строка) уведомления в стандартном уведомлении.

NotificationCompat.Builder setContentTitle (заголовок CharSequence)

Установите текст (первая строка) уведомления в стандартном уведомлении.

NotificationCompat.Builder setDefaults (int defaults)

Установите параметры уведомления по умолчанию, которые будут использоваться.

NotificationCompat.Builder setLargeIcon (значок растрового изображения)

Установите большой значок, который отображается в тикере и уведомлении.

NotificationCompat.Builder setNumber (int number)

Установите большое число в правой части уведомления.

Ниже приводится содержимое измененного основного файла активности src / com.example.notificationdemo / MainActivity.java . Этот файл может включать в себя каждый из основных методов жизненного цикла.

Ниже приведено содержимое измененного основного файла активности src / com.example.notificationdemo / NotificationView.java .

Ниже будет содержимое файла res / values ​​/ strings.xml для определения двух новых констант:

Android Уведомление Старт

Уведомление Android расширено

Big View Notification

Читайте также: