Удалить уведомление после нажатия
Я хочу, чтобы уведомление было закрыто после того, как пользователь нажмет на него. Я видел, что все говорят использовать флаги, но я не могу найти флаги нигде, потому что я использую класс NotificationCompat.Builder, а не класс Notification. Кто-нибудь есть идеи, как сделать уведомление удалено ею?
Вот мой код, когда я устанавливаю уведомление:
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("New Question")
.setContentText("" + QuestionData.getAuthor().getUserName() + ": " + QuestionData.getQuestion() + "");
Intent openHomePageActivity = new Intent("com.example.ihelp.HOMEPAGEACTIVITY");
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addNextIntent(openHomePageActivity);
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());
Ответы
Ответ 1
Легко, просто позвони так:
mBuilder.setAutoCancel(true);
Кроме того, хотя это не является действительно необходимым, если вы действительно хотите использовать FLAG_AUTO_CANCEL
, просто вызовите это, прежде чем вызывать mNotificationManager.notify
:
mBuilder.build().flags |= Notification.FLAG_AUTO_CANCEL;
Ответ 2
Попробуйте это....
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
..........
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
this).setSmallIcon(R.drawable.push_notify_icon)
.setContentTitle("New Question!")
.setStyle(new NotificationCompat.BigTextStyle().bigText(msg))
.setAutoCancel(true).setContentText("" + QuestionData.getAuthor().getUserName() + ": " + QuestionData.getQuestion() + "");
mBuilder.setContentIntent(contentIntent);
..............
mBuilder.getNotification().flags |= Notification.FLAG_AUTO_CANCEL;
mNotificationManager.notify(0, mBuilder.build());
Ответ 3
Вот уведомление:
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_calendar)
.setContentTitle("My Firebase Push notification")
.setContentText(message)
.setAutoCancel(true)
.setSound(soundUri)
.setContentIntent(pendingIntent);
ключ к отмене по клику:
.setAutoCancel(true)
Я надеюсь, что это решит проблему.
Ответ 4
Вы можете добавить флаг к своему уведомлению:
http://developer.android.com/reference/android/app/Notification.html#FLAG_AUTO_CANCEL
Это отклонит его при нажатии.
Ответ 5
В kotlin вы можете использовать:
mBuilder.build().flags.and(Notification.FLAG_AUTO_CANCEL)