I am receiving only one notification and if there comes another notification, it replaces the previous one and here is my code
private static void generateNo
Another way of doing it is take the current date convert it into long just take the last 4 digits. There is a high probability that the number will be unique.
long time = new Date().getTime();
String tmpStr = String.valueOf(time);
String last4Str = tmpStr.substring(tmpStr.length() -5);
int notificationId = Integer.valueOf(last4Str);
notificationManager.notify(0, notification);
Put this code instead of 0
new Random().nextInt()
Like below it works for me
notificationManager.notify(new Random().nextInt(), notification);
For Kotlin.
notificationManager.notify(Calendar.getInstance().timeInMillis.toInt(),notificationBuilder.build())
At the place of uniqueIntNo
put unique integer number like this:
mNotificationManager.notify(uniqueIntNo, builder.build());
Below is the code for pass unique notification id:
//"CommonUtilities.getValudeFromOreference" is the method created by me to get value from savedPreferences.
String notificationId = CommonUtilities.getValueFromPreference(context, Global.NOTIFICATION_ID, "0");
int notificationIdinInt = Integer.parseInt(notificationId);
notificationManager.notify(notificationIdinInt, notification);
// will increment notification id for uniqueness
notificationIdinInt = notificationIdinInt + 1;
CommonUtilities.saveValueToPreference(context, Global.NOTIFICATION_ID, notificationIdinInt + "");
//Above "CommonUtilities.saveValueToPreference" is the method created by me to save new value in savePreferences.
Reset notificationId
in savedPreferences
at specific range like I have did it at 1000. So it will not create any issues in future.
Let me know if you need more detail information or any query. :)
A simple counter may solve your problem.
private Integer notificationId = 0;
private Integer incrementNotificationId() {
return notificationId++;
}
NotificationManager.notify(incrementNotificationId, notification);