Ich erhalte nur eine Benachrichtigung und wenn eine weitere Benachrichtigung eingeht, ersetzt diese die vorherige und hier ist mein 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
quelle
quelle
Antworten:
Ersetzen Sie einfach Ihre Leitung durch diese
hoffe es wird dir helfen.
quelle
Unique_Integer_Number
in Ihrem Code .. und welchen Code sollte er ersetzenEinfache Benachrichtigungs-ID muss änderbar sein.
Erstellen Sie einfach eine Zufallszahl für notification_id.
oder Sie können diese Methode verwenden, um eine Zufallszahl zu erstellen, wie von tieorange angegeben (dies wird niemals wiederholt):
und ersetzen Sie diese Zeile, um einen Parameter für die Benachrichtigungs-ID hinzuzufügen und eine Zufallszahl zu generieren
quelle
Die Verwendung gemeinsamer Einstellungen hat bei mir funktioniert
quelle
Ersetzen Sie Ihre Leitung durch diese.
quelle
Ich denke, dies wird jemandem helfen.
Im folgenden Code ist "not_nu" ein zufälliger Int. PendingIntent und Notification haben dieselbe ID.
quelle
An der Stelle, an der
uniqueIntNo
eine eindeutige Ganzzahl wie folgt eingegeben wird:quelle
Sie müssen jeder Benachrichtigung eine eindeutige ID hinzufügen, damit sie nicht miteinander kombiniert werden. Sie können diesen Link als Referenz verwenden:
https://github.com/sanathe06/AndroidGuide/tree/master/ExampleCompatNotificationBuilder
quelle
Ich habe mein Problem so gelöst ...
quelle
Eine andere Möglichkeit besteht darin, das aktuelle Datum in lange zu konvertieren und nur die letzten 4 Ziffern zu verwenden. Es besteht eine hohe Wahrscheinlichkeit, dass die Nummer eindeutig ist.
quelle
int notificationId = System.currentTimeMillis()%10000;
Sie müssen nur Ihre einzeiligen ändern von
notificationManager.notify(0, notification);
bisnotificationManager.notify((int) System.currentTimeMillis(), notification);
...Dadurch wird die ID der Benachrichtigung geändert, sobald die neue Benachrichtigung angezeigt wird
quelle
Setzen Sie diesen Code anstelle von 0
Wie unten funktioniert es bei mir
quelle
Das Problem liegt bei Ihnen
notificationId
. Betrachten Sie es als Array-Index. Jedes Mal, wenn Sie Ihre Benachrichtigung aktualisieren,notificationId
ist dies der Ort, an dem der Wert gespeichert wird. Da Sie Ihren int-Wert (in diesem Fall IhrennotificationId
) nicht erhöhen , ersetzt dies immer den vorherigen. Ich denke, die beste Lösung besteht darin, sie zu erhöhen, sobald Sie eine Benachrichtigung aktualisiert haben. Und wenn Sie es dauerhaft halten möchten, können Sie den Wert IhresnotificationId
In speichernsharedPreferences
. Wann immer Sie zurückkommen, können Sie einfach den letzten ganzzahligen Wert (notificationId
gespeichert insharedPreferences
) abrufen und verwenden.quelle
Unten finden Sie den Code für die eindeutige Benachrichtigungs-ID:
Zurücksetzen
notificationId
insavedPreferences
an bestimmten Bereich , wie ich es bei 1000 tat haben also es irgendwelche Probleme in Zukunft nicht schaffen wird. Lassen Sie mich wissen, wenn Sie weitere Informationen oder Fragen benötigen. :) :)quelle
Verwenden Sie die folgende Methode in Ihrem Code.
Methodenaufruf: -
Methode:-
quelle
Ein einfacher Zähler kann Ihr Problem lösen.
quelle
quelle
quelle