не отображать уведомление, увидев его один раз - PullRequest
3 голосов
/ 10 мая 2010

Привет. Я не хочу отображать какую-либо службу уведомлений в строке состояния, если я видел одну службу уведомлений один раз. Например, я отображаю людей, которые находятся на расстоянии более 20 км от моего местоположения. Некоторые люди отображаются. Когда я увидел его один раз, затем автоматически не отображается значок в строке состояния. Для этого дайте мне несколько советов. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 10 мая 2010

Я делаю это:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
boolean used = sp.getBoolean("notif_used", false);

if ( used )
 return;
else {
 /* show the notification */
 Editor editor = getSharedPreferences().edit();
 editor.putBoolean("notif_used", true);
 editor.commit();
}
1 голос
/ 10 мая 2010

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

Идея такова:

  • Хранить хеш-таблицу / хэш-набор / другую структуру данных, указывающую, какие уведомления пользователь уже видел.
  • Прежде чем показывать уведомление, проверьте хэш-таблицу & ndash; если уведомление там, не показывать его. В противном случае покажите это.
  • При отображении уведомления добавьте его в хеш-таблицу.
  • Периодически очищайте хеш-таблицу.

Возможно, вы захотите взглянуть на Notification.deleteIntent.

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

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