В настоящее время я работаю над переводом приложения на Android O и работаю над каналами уведомлений.
Я создал разные каналы с разным уровнями важности и с тех пор, как приложение имеет службу переднего плана, которая должна работать все время, пока мы не перейдем к новой архитектуре (более ориентированной на push), я подумал о том, чтобы поместить это уведомление в канал, для которого значение важности установлено как IMPORTANCE_MIN
, чтобы оно было там, но оно не не беспокоит пользователя и не размещает значок в строке состояния.
Однако, когда я делаю это и помещаю свое приложение в фоновый режим (с кнопками «Домой» или «Назад»), я получаю уведомление системы Android, сообщающее мне, что мое приложение работает в фоновом режиме, например:
Если я изменю свой канал и заставлю его использовать IMPORTANCE_LOW
, проблема исчезнет, однако уведомление станет более заметным.
Итак, мой вопрос: возможно ли вообще делать то, что я пытаюсь? Я понимаю, что система не позволит разработчикам сделать это, потому что если у вас есть служба переднего плана, она должна быть видна пользователю, но это только предположение, и я не нашел документации по этому поводу, и поэтому я размещение этого вопроса.
Мой второй вопрос: до O, если вы установите приоритет своего уведомления на PRIORITY_MIN
, можете ли вы связать это уведомление со службой, чтобы сделать ее службой переднего плана, или это всегда было запрещено?
Изменить: Подтверждено, что система Android показывает уведомление для каналов с важностью IMPORTANCE_MIN
(спасибо, M66B), поэтому остается вопрос: почему? Кто-нибудь знает причину этого или может найти какую-либо документацию в любом месте? Возможно, это ошибка, о которой следует сообщить трекеру?
Notification
, когда у вас естьIMPORTANCE_MIN
. Кажется довольно маловероятным, что они случайно добавили его. - person CommonsWare   schedule 04.08.2017startForeground()
с ошибочнымNotification
(например, без значка) приводило к важности переднего плана, но неNotification
. Android 4.4 (?) изменил поведение, чтобы восстановить такой сломанныйNotification
, чтобы пользователи знали о службе переднего плана. Затем пользователи ругали разработчиков за наличие таких сервисов, в меньшей степени за загромождение строки состояния. - person CommonsWare   schedule 04.08.2017