Я получаю только одно уведомление, и если приходит другое уведомление, оно заменяет предыдущее, и вот мой код
private static void generateNotification(Context context, String message,
String key) {
int icon = R.drawable.ic_launcher;
long when = System.currentTimeMillis();
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);
String title = context.getString(R.string.app_name);
Intent notificationIntent = new Intent(context,
FragmentOpenActivity.class);
notificationIntent.putExtra(key, key);
// set intent so it does not start a new activity
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent = PendingIntent.getActivity(context, 0,
notificationIntent, 0);
notification.setLatestEventInfo(context, title, message, intent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.defaults |= Notification.DEFAULT_SOUND;
// notification.sound = Uri.parse("android.resource://" +
// context.getPackageName() + "your_sound_file_name.mp3");
notification.defaults |= Notification.DEFAULT_VIBRATE;
notificationManager.notify(0, notification);
}
android
notifications
android-notifications
Kartheek s
источник
источник
Ответы:
просто замените свою строку на это
надеюсь, это поможет вам.
источник
Unique_Integer_Number
в вашем коде .. и какой код он должен заменитьНеобходимо изменить простой идентификатор уведомления.
Просто создайте случайное число для notification_id.
или вы можете использовать этот метод для создания случайного числа, как указано в tieorange (это никогда не повторится):
и замените эту строку, чтобы добавить параметр для идентификатора уведомления для генерации случайного числа
источник
Использование общих настроек помогло мне
источник
Замените свою строку этой.
источник
Я думаю, это поможет кому-то ..
в приведенном ниже коде "not_nu" - случайное целое число .. PendingIntent и Notification имеют одинаковый идентификатор .. так что при каждом щелчке уведомления намерение будет направлять к разным действиям ..
источник
На место
uniqueIntNo
поставьте уникальное целое число вроде этого:источник
Вам нужно добавить уникальный идентификатор к каждому из уведомлений, чтобы они не объединялись друг с другом. Вы можете использовать эту ссылку для справки:
https://github.com/sanathe06/AndroidGuide/tree/master/ExampleCompatNotificationBuilder
источник
Я решил свою проблему вот так ...
источник
Другой способ сделать это - взять текущую дату, преобразовать ее в длинную, просто возьмите последние 4 цифры. Есть большая вероятность, что номер будет уникальным.
источник
int notificationId = System.currentTimeMillis()%10000;
Вам просто нужно сменить однострочную строку с
notificationManager.notify(0, notification);
наnotificationManager.notify((int) System.currentTimeMillis(), notification);
...Это изменит идентификатор уведомления всякий раз, когда появится новое уведомление.
источник
Поместите этот код вместо 0
Как показано ниже, это работает для меня
источник
Проблема в вашем
notificationId
. Думайте об этом как об индексе массива. Каждый раз, когда вы обновляете свое уведомление,notificationId
это место, которое требуется для хранения значения. Поскольку вы не увеличиваете значение int (в данном случае вашеnotificationId
), оно всегда заменяет предыдущее. Думаю, лучшее решение - увеличить его сразу после обновления уведомления. И если вы хотите, чтобы он оставался постоянным, вы можете сохранить значение своегоnotificationId
вsharedPreferences
. Когда вы вернетесь, вы можете просто взять последнее целое значение (notificationId
сохраненное вsharedPreferences
) и использовать его.источник
Ниже приведен код для передачи уникального идентификатора уведомления:
Выполните сброс
notificationId
вsavedPreferences
определенном диапазоне, как я сделал это на 1000. Так что это не создаст никаких проблем в будущем. Дайте мне знать, если вам нужна более подробная информация или какой-либо вопрос. :)источник
Используйте в своем коде следующий метод.
Вызов метода: -
Метод: -
источник
Простой счетчик может решить вашу проблему.
источник
источник
источник