У меня есть приложение, которое генерирует уведомление, когда происходит определенное событие, введенное пользователем в приложении. Теперь, например, пользователь ввел 7 событий, и он не нажимает на уведомления, тогда панель уведомлений станет заполнена. Я не хочу этого. Я хочу показать только один значок уведомления, но все 7 уведомлений. Также как whatsapp
, где отображается только 1 значок уведомления.Обработка нескольких уведомлений в android
1
A
ответ
5
Я предполагаю, что вы смотрите на «Укладку» уведомлений.
Здесь есть несколько важных API.
1. setGroup()
: Это означает, что уведомление является частью группы уведомлений, имеющих один и тот же ключ.
2. setGroupSummary()
: Установите это уведомление как сводку группы для группы уведомлений.
Кроме того, нам необходимо иметь одинаковый идентификатор построителя уведомлений. Ниже приведены мои declarayions в классе:
final static String GROUP_KEY_EMAILS = "group_key_emails";
int UNIQUE_NOTIFICATION_ID=422;
и примеры кода, чтобы отправлять уведомления:
Notification summaryNotification = new NotificationCompat.Builder(context)
.setContentTitle("2 new messages")
.setSmallIcon(R.drawable.ic_launcher)
.setStyle(new NotificationCompat.InboxStyle()
.addLine("Notification 1 First line of info")
.addLine("otification 2 Second line of info")
.addLine("otification 3 Second line of info")
.setBigContentTitle("3 new messages")
.setSummaryText("[email protected]"))
.setGroup(GROUP_KEY_EMAILS)
.setGroupSummary(true)
.build();
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(UNIQUE_NOTIFICATION_ID, summaryNotification);
Это покажет интерфейс, как показано ниже:
Создать пользовательский макет для уведомления и имеют одинаковый идентификатор builder и вид обновления для каждого нового уведомления! – Muthu
Создайте уникальный NOTIFICATION_ID и используйте его для всех уведомлений. Если предыдущее уведомление уже существует, просто обновите пользовательский интерфейс предыдущего уведомления. –
@ user2163887 Спасибо, это имеет смысл для меня больше, но пример будет очень приятным. –