Android: удалить уведомление из панели уведомлений

Я создал приложение, и с событием мне удалось добавить уведомление в панель уведомлений Android. Теперь мне нужно попробовать, как удалить это уведомление из панели уведомлений о событии?

Это довольно просто. Вы должны вызвать cancel или cancelAll в своем NotificationManager. Параметр метода отмены – это идентификатор уведомления, который должен быть отменен.

См. API: http://developer.android.com/reference/android/app/NotificationManager.html#cancel(int)

Вы можете попробовать этот быстрый код

 public static void cancelNotification(Context ctx, int notifyId) { String ns = Context.NOTIFICATION_SERVICE; NotificationManager nMgr = (NotificationManager) ctx.getSystemService(ns); nMgr.cancel(notifyId); } 

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

 NotificationManager notifManager= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); notifManager.cancelAll(); 

EDIT: я был заблокирован, поэтому, возможно, я должен указать, что это только удалит уведомление из вашего приложения.

просто установите setAutoCancel (True) как следующий код:

 Intent resultIntent = new Intent(GameLevelsActivity.this, NotificationReceiverActivityAdv.class); PendingIntent resultPendingIntent = PendingIntent.getActivity( GameLevelsActivity.this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT ); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder( getApplicationContext()).setSmallIcon(R.drawable.icon) .setContentTitle(adv_title) .setContentText(adv_desc) .setContentIntent(resultPendingIntent) //HERE IS WHAT YOY NEED: .setAutoCancel(true); NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); manager.notify(547, mBuilder.build());` 

Если вы генерируете уведомление из службы , запущенной на переднем плане, используя

 startForeground(NOTIFICATION_ID, notificationBuilder.build()); 

Затем выдача

 notificationManager.cancel(NOTIFICATION_ID); 

не работает отмена уведомления и уведомления по-прежнему отображается в строке состояния. В этом конкретном случае вы решите их двумя способами:

1> Использование функции stopForeground (false) внутри службы:

 stopForeground( false ); notificationManager.cancel(NOTIFICATION_ID); 

2> Уничтожьте этот class обслуживания с активностью вызова:

 Intent i = new Intent(context, Service.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); if(ServiceCallingActivity.activity != null) { ServiceCallingActivity.activity.finish(); } context.stopService(i); 

Второй способ предпочтительнее в уведомлении музыкального плеера, потому что thay способ не только удалить уведомление, но и удалить плеер … !!

это поможет:

 NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); mNotificationManager.cannelAll(); 

и если вы создадите уведомление по телефону

 startForeground(); 

внутри службы. Возможно, вам придется позвонить

 stopForeground(false); 

сначала отмените уведомление.

Используйте NotificationManager для отмены вашего уведомления. Вам нужно только указать идентификатор вашего уведомления

mNotificationManager.cancel (YOUR_NOTIFICATION_ID);

также проверьте эту ссылку См. ссылку разработчика

В Android API> = 23 вы можете сделать что-то вроде этого, чтобы удалить группу уведомлений.

  for (StatusBarNotification statusBarNotification : mNotificationManager.getActiveNotifications()) { if (KEY_MESSAGE_GROUP.equals(statusBarNotification.getGroupKey())) { mNotificationManager.cancel(statusBarNotification.getId()); } } 

NotificationManager.cancel(id) – правильный ответ. Однако вы можете удалить в Android Oreo и позже уведомления, удалив весь канал уведомлений. Это должно удалить все сообщения в удаленном канале.

Вот пример из документации для Android :

 NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // The id of the channel. String id = "my_channel_01"; mNotificationManager.deleteNotificationChannel(id); 

Пожалуйста, попробуйте это,

 public void removeNotification(Context context, int notificationId) { NotificationManager nMgr = (NotificationManager) context.getApplicationContext() .getSystemService(Context.NOTIFICATION_SERVICE); nMgr.cancel(notificationId); } 

Просто позвоните по ID:

 public void delNoti(int id) {((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).cancel(id);} 
  • Обновить текст уведомления, а не целое уведомление
  • Уведомление Не показывать
  • Проверить доступ к уведомлениям с помощью NotificationListenerService
  • проблема с уведомлением о намерении андроида
  • Извлечение текста извещных, contentView или contentIntent
  • Отсутствие права на уведомление Push Push
  • Создание пользовательского уведомления, андроида
  • Истекает ли идентификатор регистрации GCM?
  • Android - создайте уведомление, TaskStackBuilder.addParentStack не работает
  • Обнаруживать новое уведомление для Android
  • getIntent () Дополнительно всегда NULL
  • Давайте будем гением компьютера.