11 ответов:
Это довольно просто. Вы должны позвонить
cancelилиcancelAllна вашем NotificationManager. Параметр метода cancel-это идентификатор уведомления, которое должно быть отменено.смотрите 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> уничтожить этот класс обслуживания с помощью вызывающая активность:
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.отмена (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);}
Comments