Tôi đã cố gắng trong nhiều giờ để loại bỏ một thông báo dai dẳng thiết lập bởi một dịch vụ sử dụng:NotificationManager.cancel() không làm việc cho tôi
startForeground(1337, notification);
Mã Tôi đang sử dụng để hủy bỏ nó:
NotificationManager nManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
nManager.cancel(1337); // cancel existing service notification, doesn't take effect
nManager.cancelAll(); //surpluous, but also doesn't take effect
Tôi thiếu gì ở đây? Tôi bối rối.
Để làm rõ lý do tại sao tôi làm điều này: Dịch vụ bắt đầu bằng Thông báo liên tục mặc định. Khi ứng dụng của tôi chạy, ứng dụng cần thay thế Thông báo này bằng một thông báo khác. Tuy nhiên, việc sử dụng notify()
trên Thông báo hiện có hoàn toàn hoạt động, tuy nhiên, tôi cũng cần nó để hiển thị văn bản mã cho Thông báo mới. Đây là lý do tôi quyết định xóa Thông báo hiện tại (sử dụng mã ở trên), tạo một thông báo mới, sau đó tôi gọi lại startForeground()
và chuyển Thông báo mới đến đó, vì vậy Dịch vụ của tôi vẫn tồn tại.
Bạn đang cố xóa thông báo được bắt đầu từ ứng dụng khác? – matt5784
không, đó là cùng một ứng dụng – slinden77