2016-03-12 19 views
7

Bir android uygulaması yapıyorum ve belirli bir etikete sahip tüm bildirimleri iptal etmek istiyorum.Belli bir etiketi olan tüm bildirimleri iptal etmek mümkün mü?

Şu anda yalnızca bildirimleri kendi kimlikleriyle (int id) veya her ikisi de kimlikleriyle ve etiketleriyle iptal etmek mümkün görünüyor.

mNotificationManager.cancel (int id);

veya

mNotificationManager.cancel (String etiketi, int kimliği);

Int id'den bağımsız olarak tüm String bildirimlerini iptal edebilmek istiyorum.

Bu mümkün mü?

cevap

5

Hayır, öyle değil. Bildirim ayarlandı, kimlik birincil anahtardır. Etikete sahip bir alt anahtar ekleyebilir ve tek tek (etiket, id) çiftini bu şekilde iptal edebilirsiniz, ancak yalnızca etikete göre iptal edemezsiniz. Gerçekten de, bir string parametresinin neden daha kolay hata ayıklama için yaptığı dışında, bir reddedici gibi göründüğü için bir etiket parametresi eklediklerinden emin değilim.

+6

Etiketler, bildirimleri kullanarak birden fazla bileşen içeren bir uygulama geliştirirken çok kullanışlıdır. Her bileşen için bir etiket belirlerseniz, tüm bileşenlerin bağlamında kimliklerin benzersizliği konusunda endişelenmeniz gerekmez. Sadece yerel olarak benzersiz olmalılar. – Nedko

+0

@Nedko hangi bileşenlerle konuşuyorsunuz? ve bana 'tag' kullanımının kod örneğini verebilir misin? – UnKnown

+0

@Gabe hata ayıklama amacı için nasıl yararlı olabilir? – UnKnown

1

Android API'da> = 23, bir grup bildirimi kaldırmak için böyle bir şey yapabilirsiniz. (StatusBarNotification statusBarNotification: mNotificationManager.getActiveNotifications()) için (KEY_MESSAGE_GROUP.equals (statusBarNotification.getGroupKey())) { mNotificationManager.cancel (statusBarNotification.getId()); } }

1

Bildirim grupları kullanıyorsanız, mümkün görünüyor. Grup özet bildirimini iptal etmek tüm grubu iptal ediyor gibi görünüyor.

İlgili konular