Je ne reçois qu'une seule notification et s'il y a une autre notification, elle remplace la précédente et voici mon code
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
la source
la source
Réponses:
remplacez simplement votre ligne par ceci
j'espère que cela vous aidera.
la source
Unique_Integer_Number
dans votre code .. et quel code il devrait remplacerLa notification_id simple doit être modifiable.
Créez simplement un numéro aléatoire pour notification_id.
ou vous pouvez utiliser cette méthode pour créer un nombre aléatoire comme indiqué par tieorange (cela ne sera jamais répété):
et remplacez cette ligne pour ajouter un paramètre pour l'ID de notification afin de générer un nombre aléatoire
la source
L'utilisation des préférences partagées a fonctionné pour moi
la source
Remplacez votre ligne par ceci.
la source
Je suppose que cela aidera quelqu'un ..
dans le code ci-dessous "not_nu" est un int aléatoire. PendingIntent et Notification ont le même ID .. de sorte que sur chaque notification, cliquez sur l'intention dirigée vers une activité différente.
la source
À la place de
uniqueIntNo
mettre un nombre entier unique comme ceci:la source
Vous devez ajouter un identifiant unique à chacune des notifications afin qu'elles ne se combinent pas entre elles. Vous pouvez utiliser ce lien pour votre référence:
https://github.com/sanathe06/AndroidGuide/tree/master/ExampleCompatNotificationBuilder
la source
J'ai résolu mon problème comme ça ...
la source
Une autre façon de le faire est de prendre la date actuelle, de la convertir en longue, il suffit de prendre les 4 derniers chiffres. Il y a une forte probabilité que le numéro soit unique.
la source
int notificationId = System.currentTimeMillis()%10000;
Il vous suffit de changer votre ligne unique de
notificationManager.notify(0, notification);
ànotificationManager.notify((int) System.currentTimeMillis(), notification);
...Cela changera l'identifiant de la notification chaque fois que la nouvelle notification apparaîtra
la source
Mettez ce code au lieu de 0
Comme ci-dessous ça marche pour moi
la source
Le problème vient de votre
notificationId
. Considérez-le comme un index de tableau. Chaque fois que vous mettez à jour votre notification,notificationId
c'est l'endroit où la valeur est stockée. Comme vous n'incrémentez pas votre valeur int (dans ce cas, votrenotificationId
), cela remplace toujours la précédente. La meilleure solution, je suppose, est de l'incrémenter juste après la mise à jour d'une notification. Et si vous voulez le garder persistant, vous pouvez stocker la valeur de votrenotificationId
insharedPreferences
. Chaque fois que vous revenez, vous pouvez simplement saisir la dernière valeur entière (notificationId
stockée danssharedPreferences
) et l'utiliser.la source
Voici le code pour passer l'identifiant de notification unique:
Réinitialiser
notificationId
danssavedPreferences
à courte portée spécifique comme je l' ai fait à ce 1000. Donc , il ne crée pas de problèmes à l' avenir. Faites-moi savoir si vous avez besoin d'informations plus détaillées ou de toute requête. :)la source
Utilisez la méthode suivante dans votre code.
Appel de méthode: -
Méthode:-
la source
Un simple compteur peut résoudre votre problème.
la source
la source
la source