Recibo solo una notificación y si llega otra notificación, reemplaza la anterior y aquí está mi código
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
fuente
fuente
Respuestas:
solo reemplaza tu línea con esto
Espero que te ayude.
fuente
Unique_Integer_Number
en su código ... y qué código debe reemplazarSe debe cambiar el id. De notificación simple.
Simplemente cree un número aleatorio para notification_id.
o puede usar este método para crear un número aleatorio como lo indica tieorange (esto nunca se repetirá):
y reemplace esta línea para agregar un parámetro para la identificación de notificación para generar un número aleatorio
fuente
El uso de preferencias compartidas funcionó para mí
fuente
Reemplace su línea con esto.
fuente
Supongo que esto ayudará a alguien ...
en el siguiente código, "not_nu" es un int aleatorio. PendingIntent y Notification tienen la misma ID .. de modo que en cada notificación, haga clic en intent dirigirse a una actividad diferente ..
fuente
En el lugar de
uniqueIntNo
poner un número entero único como este:fuente
Debe agregar una identificación única a cada una de las notificaciones para que no se combinen entre sí. Puede utilizar este enlace como referencia:
https://github.com/sanathe06/AndroidGuide/tree/master/ExampleCompatNotificationBuilder
fuente
Resolví mi problema así ...
fuente
Otra forma de hacerlo es tomar la fecha actual, convertirla en larga, solo tomar los últimos 4 dígitos. Existe una alta probabilidad de que el número sea único.
fuente
int notificationId = System.currentTimeMillis()%10000;
Solo necesita cambiar su diagrama unifilar de
notificationManager.notify(0, notification);
anotificationManager.notify((int) System.currentTimeMillis(), notification);
...Esto cambiará la identificación de la notificación cada vez que aparezca la nueva notificación
fuente
Pon este código en lugar de 0
Como a continuación, funciona para mí
fuente
El problema es tu
notificationId
. Piense en ello como un índice de matriz. Cada vez que actualiza su notificación, elnotificationId
es el lugar que se necesita para almacenar valor. Como no está incrementando su valor int (en este caso, sunotificationId
), esto siempre reemplaza al anterior. La mejor solución, supongo, es incrementarla justo después de actualizar una notificación. Y si desea mantenerlo persistente, puede almacenar el valor de sunotificationId
insharedPreferences
. Siempre que regrese, puede simplemente tomar el último valor entero (notificationId
almacenadosharedPreferences
) y usarlo.fuente
A continuación se muestra el código para pasar la identificación de notificación única:
Restablezca
notificationId
ensavedPreferences
un rango específico como lo hice en 1000. Por lo tanto, no creará ningún problema en el futuro. Déjame saber si necesitas más información detallada o alguna consulta. :)fuente
Utilice el siguiente método en su código.
Llamada de método: -
Método:-
fuente
Un simple contador puede resolver su problema.
fuente
fuente
fuente