2010-12-30 2 views
1

Ok,Android уведомления становится постоянная с определенными флагами

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

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

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. Идентификатор в указанном выше коде также отличается от текущего уведомления.

Любые идеи очень оценены! :)

Andy.

ответ

4

Он создает постоянное уведомление, несмотря на отсутствие постоянного флага!

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

+0

Spot on! Большое спасибо! Почувствуйте себя глупым сейчас! лол. Подумайте, есть несколько примеров в интернетах, которые я, должно быть, скопировал эту ошибку! Большое спасибо! :) – Andy

+0

@ Энди: Я не уверен, почему Android не использует перечисления для таких вещей, как (я думаю), они поймают этот материал во время компиляции. – CommonsWare

+0

@CommonsWare Я уверен, что вы уже видели это, но они добавили blub о том, как перечисления используют больше памяти в их добавленном [документе использования памяти] (http://developer.android.com/training/articles/ memory.html # Накладные). – dcow

 Смежные вопросы

  • Нет связанных вопросов^_^