Android: After creating a new notification, the older one is replaced
11,742
Solution 1
You are using a hardcoded id for your notification, of course it will replace the old one. Try using a variable ID instead of a hardcoded 100.
mNotificationManager.notify(100+x, mBuilder.build());
or something of the sort.
Solution 2
Use variable id for notification, I have faced this issue 1 Hour ago And used this technique to overcome this issue.
val id= Random(System.currentTimeMillis()).nextInt(1000)
mNotificationManager?.notify(id, mBuilder.build())
Solution 3
for long term solutions, you can use a random method to generate integer variable for you and call that in notify.
mNotificationManager.notify(createRandomCode(7), mBuilder.build());
public int createRandomCode(int codeLength) {
char[] chars = "1234567890".toCharArray();
StringBuilder sb = new StringBuilder();
Random random = new SecureRandom();
for (int i = 0; i < codeLength; i++) {
char c = chars[random.nextInt(chars.length)];
sb.append(c);
}
return Integer.parseInt(sb.toString());
}
Related videos on Youtube
Author by
M.Veli
Updated on September 15, 2022Comments
-
M.Veli over 1 year
I want to create a notification without canceling/deleting previous notifications from my app. Here is my code for creating a notification:
private void notification(Context context, String title, String content) { NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context) .setSmallIcon(R.drawable.notification_icon) .setContentTitle(title) .setContentText(content); Intent resultIntent = new Intent(context, MainActivity.class); TaskStackBuilder stackBuilder = TaskStackBuilder.create(context); // Adds the back stack for the Intent (but not the Intent itself) stackBuilder.addParentStack(MainActivity.class); // Adds the Intent that starts the Activity to the top of the stack stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent( 0, PendingIntent.FLAG_UPDATE_CURRENT ); mBuilder.setContentIntent(resultPendingIntent); NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); //Id allows you to update the notification later on. mNotificationManager.notify(100, mBuilder.build()); }