Уведомление Android становится продолжительным с определенными флагами - PullRequest
1 голос
/ 30 декабря 2010

Хорошо,

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

Если я сделаю это:

  Notification notification = new Notification(R.drawable.status_icon, "[Ticker Text]",System.currentTimeMillis());

  PendingIntent intent = PendingIntent.getActivity(this, 0, new Intent(this, CarparkScreen.class), 0);

  notification.setLatestEventInfo(AlertService.this,"[Title]", "[Detail]", intent);

  mNM.notify(NOTIFICATION_BREACH, notification);

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

Если, однако, я добавлю эти флаги

  Notification notification = new Notification(R.drawable.status_icon, "[Ticker Text]",System.currentTimeMillis());

  PendingIntent intent = PendingIntent.getActivity(this, 0, new Intent(this, CarparkScreen.class), 0);

  notification.setLatestEventInfo(AlertService.this,"[Title]", "[Detail]", intent);

  notification.flags = Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS;

  mNM.notify(NOTIFICATION_BREACH, notification);

Создает текущее уведомление, несмотря на отсутствие текущего флага !!

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

Urgh !!!!

Может ли кто-нибудь еще воссоздать это? Кажется, что такой очевидный вариант использования - ошибка или извращение.

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

Любые идеи высоко ценятся! :)

Энди.

1 Ответ

4 голосов
/ 30 декабря 2010

Создает текущее уведомление, несмотря на отсутствие текущего флага !!

Поле flags получает FLAG_ констант.Поле defaults получает DEFAULT_ констант.Вы помещаете DEFAULT_ константы в поле flags.Попробуйте изменить код для использования поля defaults.

...