2016-03-12 17 views
7

Tôi đang tạo ứng dụng android và tôi muốn hủy tất cả các thông báo có một thẻ nhất định.Có thể hủy tất cả các thông báo có một thẻ nhất định không?

Hiện tại, bạn chỉ có thể hủy thông báo theo id của chúng (id int) hoặc bằng cả id và thẻ của chúng.

mNotificationManager.cancel (int id);

hoặc

mNotificationManager.cancel (String tag, int id);

Tôi muốn có thể hủy tất cả thông báo của thẻ Chuỗi bất kể id int.

Điều này có khả thi không?

Trả lời

5

Không, không phải vậy. Cách Thông báo được thiết lập, id là khóa chính. Bạn có thể thêm khóa con với thẻ và hủy từng cặp (thẻ, id) theo cách đó, nhưng bạn không thể hủy chỉ dựa trên thẻ. Thực sự tôi không chắc chắn lý do tại sao họ thêm một tham số thẻ, vì nó có vẻ khá thừa, ngoại trừ có thể một tham số chuỗi làm cho việc gỡ lỗi dễ dàng hơn.

+6

Thẻ rất hữu ích khi bạn đang phát triển ứng dụng có nhiều thành phần sử dụng thông báo. Nếu bạn đặt thẻ cho từng thành phần, bạn không phải lo lắng về tính duy nhất của các id trong ngữ cảnh của tất cả các thành phần. Họ chỉ phải là duy nhất tại địa phương. – Nedko

+0

@Nedko về thành phần nào bạn đang nói? và bạn có thể cho tôi ví dụ về mã 'sử dụng' thẻ không? – UnKnown

+0

@Gabe cách 'thẻ' có thể hữu ích cho mục đích gỡ lỗi? – UnKnown

1

Trên Android API> = 23 bạn có thể thực hiện một số thao tác như thế này để xóa nhóm thông báo. cho (Trạng thái StatusBarNotificationBarNotification: mNotificationManager.getActiveNotifications()) { nếu (KEY_MESSAGE_GROUP.equals (statusBarNotification.getGroupKey())) { mNotificationManager.cancel (statusBarNotification.getId()); } }

1

Có thể nếu bạn sử dụng nhóm thông báo. Việc hủy thông báo tóm tắt nhóm có vẻ như hủy toàn bộ nhóm.

Các vấn đề liên quan