Не перезаписывать существующее уведомление - PullRequest
0 голосов
/ 06 октября 2010

Для данного идентификатора уведомления возможно (с использованием стандартных пакетов Android) не устанавливать уведомление, если существует существующее уведомление из приложения?

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

Я использую SharedPreference, чтобы установить флаг, чтобы выяснить, есть ли у меня уже заголовок плюс намерение удаления, которое очистит его. Однако deleteIntent не всегда вызывается, когда пользователь очищает все уведомления.

Заранее спасибо.

Sandeep

Ответы [ 2 ]

0 голосов
/ 05 мая 2016

Если ваше требование:

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

Вы можете использовать NotificationManager для получения списка всех активных уведомлений, опубликованных вашим приложением, используя getActiveNotifications()

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

Согласно справочному документу для getActiveNotifications():

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

Надеюсь, это поможет.

0 голосов
/ 07 октября 2010

Для тех, кто последует за этим позже:

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

  • использовать логический флаг через SharedPreference, если этот флаг установлен, то не пишите уведомление
  • сбросьте этот флаг, когда пользователь "Очистить"все уведомления.Для этого установите deleteIntent (через службу), убедитесь, что вы сняли этот флаг в onStartCommand () и onStart ()
  • , при необходимости сбросьте флаг при запуске приложения
...