Удалить значок уведомления из строки состояния - PullRequest
0 голосов
/ 07 апреля 2011

Я использовал этот FLAG для своего сервиса: Notification.FLAG_FOREGROUND_SERVICE; но когда я вызываюtificationManager.cancel (IDN), значок всегда отображается в строке состояния ..... если я изменяю FLAG на Notification.FLAG_AUTO_CANCEL, когда я вызываю NotificationManager.cancel (IDN), значок исчезает. Как можно использовать FLAG_FOREGROUND_SERVICE, а затем отменить значок?

Ответы [ 3 ]

0 голосов
/ 04 октября 2011

Я использовал:

public final void startForeground (int id, Notification notification)

и уведомление может быть отменено.

0 голосов
/ 28 марта 2013

см. this , для службы переднего плана

Бит, поразрядный в поле флагов, которое должно быть установлено, если это уведомление представляет текущую работающую службу.Обычно это устанавливается для вас startForeground (int, Notification). "

Чтобы помочь другим людям, которые могут с этим бороться, было бы действительно полезно, если бы документация для FLAG_FOREGORUND_SERVICE более четко указывала, что пользователи этого флага могутне используйте nm.cancel () и нужно использовать пару startForeground / stopForeground. Возможно, что-то вроде:

"Бит, который должен быть поразрядно размещен в поле флагов, чтобы указать состояние переднего плана работающей в данный момент службы.Вы не должны использовать этот флаг напрямую, но пусть startForeground () установит его для вас, и используйте stopForeground (true), чтобы удалить его. "

0 голосов
/ 07 апреля 2011

Я не уверен, что получил ваш вопрос, но вы можете отменить все уведомления из вашего приложения, используя:

final NotificationManager mNotificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancelAll();
...