Я пытаюсь реализовать уведомление InboxStyle в своем приложении, чтобы люди увидели все свои последние уведомления, но я не могу найти способ обновить последнее уведомление, он просто перезаписывается с помощью новый, даже если я использую тот же NOTIF_ID.Обновление уведомлений InboxStyle с новой строкой
Мой реальный код:
private void sendNotification(String notif, String[] args) {
NotificationManager mNotificationManager = (NotificationManager)
this.getSystemService(Context.NOTIFICATION_SERVICE);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
new Intent(this, main_activity.class), 0);
if (notif.equals("NOTIF_0")){
notif = String.format(getString(R.string.NOTIF_0), args[0]);
} else if (notif.equals("NOTIF_1")) {
notif = String.format(getString(R.string.NOTIF_1), args[0]);
} else if (notif.equals("NOTIF_2")) {
notif = String.format(getString(R.string.NOTIF_2), args[0]);
} else if (notif.equals("NOTIF_2_EX")) {
notif = String.format(getString(R.string.NOTIF_2_EX), args[0], args[1], args[2]);
} else if (notif.equals("NOTIF_3")) {
notif = String.format(getString(R.string.NOTIF_3), args[0]);
} else if (notif.equals("NOTIF_3_EX")) {
notif = String.format(getString(R.string.NOTIF_3_EX), args[0], args[1], args[2]);
} else if (notif.equals("NOTIF_3_EX_DIS")) {
notif = String.format(getString(R.string.NOTIF_3_EX_DIS), args[0], args[1], args[2]);
} else if (notif.equals("NOTIF_4")) {
notif = String.format(getString(R.string.NOTIF_4), args[0]);
} else if (notif.equals("NOTIF_5")) {
notif = String.format(getString(R.string.NOTIF_5), args[0]);
} else if (notif.equals("NOTIF_5_EX")) {
notif = String.format(getString(R.string.NOTIF_5_EX), args[0], args[1], args[2]);
} else if (notif.equals("NOTIF_6_EX")) {
notif = String.format(getString(R.string.NOTIF_6_EX), args[0], args[1]);
} else if (notif.equals("NOTIF_31")) {
notif = String.format(getString(R.string.NOTIF_31), args[0]);
}
NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
inboxStyle.addLine(notif);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setAutoCancel(true)
.setContentTitle(getString(R.string.app_name))
.setContentText(notif);
mBuilder.setStyle(inboxStyle);
mBuilder.setContentIntent(contentIntent);
Notification notification = mBuilder.build();
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.flags |= Notification.FLAG_SHOW_LIGHTS;
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_LIGHTS;
notification.defaults |= Notification.DEFAULT_VIBRATE;
notification.ledARGB = 0xff00ff00;
notification.ledOnMS = 300;
notification.ledOffMS = 1000;
notification.flags |= Notification.FLAG_SHOW_LIGHTS;
mNotificationManager.notify(1, notification);
}
Дополнительные вопросы: Есть ли способ, чтобы отобразить только последние 5 уведомлений (новое одно и 4 новее от последнего уведомления)? Я также ищу способ отображения BigView вместо InboxStyle, но только при наличии только одного уведомления, в противном случае уведомление должно отображаться в виде списка, можно ли увидеть уведомление с тем же идентификатором? и загружать тот или иной стиль на основе этой проверки? Невозможно найти информацию об этом в Интернете.