34

Bất kỳ ai cũng có ý tưởng về cách chúng tôi có thể xóa thông báo khỏi ứng dụng theo chương trình được gọi là sử dụng mục đích Đang chờ xử lý.Làm thế nào để loại bỏ thông báo từ thanh thông báo lập trình trong Android?

Tôi đã sử dụng để hủy thông báo bằng phương pháp sau.

AlarmManager am=(AlarmManager)getSystemService(Context.ALARM_SERVICE); 
Intent intent = new Intent(Display.this, TwoAlarmService.class); 
PendingIntent pi = PendingIntent.getBroadcast(Display.this, AlarmNumber, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
am.cancel(pi); 

Nhưng vấn đề là thông báo được kích hoạt mà không bị xóa khỏi thanh thông báo.

Cảm ơn trước ...

enter image description here

+0

hi tôi không biết là nó có thể để loại bỏ thông báo programaticaly, nhưng bạn có thể ghi đè lên các thông báo cũ với mới một điều chắc chắn. nếu nó là fullfil yêu cầu của bạn sau đó tôi có thể gửi mã cho bạn ở đây. plz reply –

+0

Không, thực sự tôi có hai thông báo khác nhau và tôi đã hủy thông báo. –

Trả lời

105

Có thể thử này:

NotificationManager notificationManager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE); 
notificationManager.cancel(NOTIFICATION_ID); 

OR, bạn cũng có thể làm điều này để hủy bỏ tất cả thông báo trong bối cảnh nhất định:

notificationManager.cancelAll(); 

Xem liên kết này đến tài liệu: NotificationManager

+0

Nó thực sự làm việc !!! :) Cảm ơn ... –

+4

Tôi không thấy điểm 'if (Context.NOTIFICATION_SERVICE! = Null)' vì đó là hằng số Chuỗi và sẽ không bao giờ là rỗng. – tar

+4

bạn đúng thử nghiệm này là vô ích, tôi không biết tại sao tôi đã làm nó (xóa nó): / –

0

Notifications vẫn có thể nhìn thấy cho đến khi một trong những điều sau đây sẽ xảy ra:

Người dùng đã bác bỏ thông báo riêng lẻ hoặc bằng cách sử dụng "Clear All" (nếu được thông báo có thể bị xóa). Người dùng nhấp vào thông báo và bạn đã gọi setAutoCancel() khi bạn tạo thông báo. Bạn gọi hủy() cho một ID thông báo cụ thể. Phương pháp này cũng xóa các thông báo đang diễn ra. Bạn gọi cancelAll(), loại bỏ tất cả các thông báo bạn đã phát hành trước đó. Nếu bạn đặt thời gian chờ khi tạo thông báo bằng cách sử dụng setTimeoutAfter(), hệ thống sẽ hủy thông báo sau khi hết thời gian đã chỉ định. Nếu cần thiết, bạn có thể hủy bỏ một thông báo trước thời gian timeout quy định trôi qua public void cancelNotification() {

String ns = NOTIFICATION_SERVICE; 
    NotificationManager nMgr = (NotificationManager) getActivity().getApplicationContext().getSystemService(ns); 
    nMgr.cancel(NOTIFICATION_ID); 
} 
Các vấn đề liên quan