Уведомление об удалении Android (созданное mNotifyBuilder) при нажатии
Я нашел много ответов на это, но никто не помог:(
У меня есть этот код:
private static void generateNotification(Context context, String message) {
int icon = R.drawable.icon;
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
int notifyID = 96;
NotificationCompat.Builder mNotifyBuilder = new NotificationCompat.Builder(context)
.setContentTitle("MyApp")
.setContentText(message)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true)
.setSmallIcon(icon);
Notification notification = mNotifyBuilder.build();
notification.flags |= Notification.FLAG_AUTO_CANCEL;
mNotificationManager.notify(notifyID, notification);
}
Но если я нажимаю на уведомление, ничего не происходит, и он все еще там. В документации есть, что мне нужно использовать:
.setAutoCancel(true)
У кого-то есть аналогичная проблема, и кто-то говорит ему:
notification.flags |= Notification.FLAG_AUTO_CANCEL;
Я использую оба, но никакого результата:(
Большое спасибо за ответы.:)
Ответы
Ответ 1
Я думаю, что если вы не используете намерение с вашим уведомлением, единственный способ отклонить его, чтобы пронести его.
В противном случае вы можете использовать намерение, чтобы открыть свою активность, и это действительно очистит уведомление:
Intent showIntent = new Intent(this, YourActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, showIntent, 0);
И добавить его в уведомление:
NotificationCompat.Builder mNotifyBuilder = new NotificationCompat.Builder(context)
.setContentTitle("MyApp")
.setContentText(message)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true)
.setContentIntent(contentIntent)
.setSmallIcon(icon);
Надеюсь, это поможет!
Ответ 2
Пользователь может отклонить все уведомления или установить автоматическое отмена уведомления, а также удалить его после выбора пользователем.
Вы также можете вызвать функцию cancel() для определенного идентификатора уведомления в NotificationManager. Вызов метода cancelAll() удаляет все уведомления, которые вы ранее выдавали.
Пример:
mNotificationManager.cancel(notifyId);
Ответ 3
просто используйте эту строку внутри кнопки onclick event -
mNotificationManager.cancel(notifyId);//id is that u used for notification
Ответ 4
просто добавьте
Intent showIntent = new Intent();
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, showIntent, 0);
myNotification = new Notification.Builder(getApplicationContext())
.setContentTitle("Title")
.setContentText("Text")
.setTicker("notificatio")
.setContentIntent(contentIntent)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true)
.setSmallIcon(R.drawable.ic_launcher)
.build();
добавить пустые ожидающие намерения, затем щелкнуть по уведомлению, уведомление будет удалено. он работает для меня.