New PendingIntent actualiza la intención actual
Estoy tratando de mostrar diferentes notificaciones después de algún intervalo de tiempo, pero lo que sucede es que actualiza la actual PendingIntent
por la nueva como resultado sólo obtener una notificación única, incluso si se dispara 4 – 5 pendientes solicitudes intenciones
En el botón haga clic en hacer lo siguiente
- Enumeración usb Android
- AlarmManager, BroadcastReceiver y el servicio no funciona
- Android - ¿Por qué utilizar intenciones pendientes para geofences
- Acción de notificación con intención pendiente que no funciona en JellyBean +
- Dos botones con PendingIntents - Widget
try{ adapter.OpenDB(); int id = adapter.getMaxId("reminder")+1; adapter.CloseDB(); Intent intent = new Intent(MilestonesActivity.this, AlarmReceiver.class); intent.putExtra("message", ""+editMsg.getText()+" "+editDate.getText()); intent.putExtra("id", id); PendingIntent pendingIntent = PendingIntent.getBroadcast(MilestonesActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); am.set(AlarmManager.RTC_WAKEUP, reminddate.getTimeInMillis(), pendingIntent); adapter.CloseDB(); }catch (Exception e) { // TODO: handle exception }
AlarmReceiver.java
@Override public void onReceive(Context context, Intent intent) { Intent i =new Intent(context, NotificationService.class); try{ int id = intent.getExtras().getInt("id"); i.putExtra("id", id); CharSequence message = intent.getExtras().getString("message"); i.putExtra("message", message); }catch (Exception e) { // TODO: handle exception } context.startService(i); }
NotificationService.java
public void show(Intent intent) { try{ NotificationManager nm; Log.e("recieve", "ok"); nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); CharSequence from = "Lawyer app Reminder"; CharSequence message = intent.getExtras().getString("message"); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(), PendingIntent.FLAG_ONE_SHOT);// also tried FLAG_UPDATE_CURRENT int id =intent.getExtras().getInt("id"); Log.e("I", ""+id); Notification notif = new Notification(R.drawable.message_active, "Lawyer app Reminder.", System.currentTimeMillis()); notif.defaults = Notification.DEFAULT_ALL; notif.flags = Notification.FLAG_AUTO_CANCEL; notif.setLatestEventInfo(this, from, message, contentIntent); nm.notify(id, notif); }catch (Exception e) { e.printStackTrace(); }
Plaese me ayuda con esto. Gracias de antemano
- Transmisión de datos del widget a la aplicación
- La notificación pasa Antiguo Intent Extras
- Eliminar alarma de AlarmManager mediante cancel () - Android
- Android: PendingIntent de la notificación no activa el onCreate () si se vuelve a activar la actividad en la pantalla
- Múltiples notificaciones para la misma actividad
- API de ubicación de Google: solicita actualizaciones de ubicación con intención pendiente?
- Cómo detener una alarma en android
- ¿Funcionará AlarmManager si mi aplicación no se está ejecutando?
Si el valor de id en nm.notify(id, notif);
Es igual que la Notificación se sobrescribirá.
Por lo que necesita para asegurarse de que el id es diferente para diferentes Notificación
Lo encontré
El segundo parámetro del constructor pendingintent no debe ser el mismo (que fue 0 codificado)
Lo cambié a (int) System.currentTimeMillis () para que no debería ser el mismo 🙂
Intent ni =new Intent(NotificationService.this,ModifyDatabaseService.class); ni.putExtra("id", ""+id); PendingIntent contentIntent = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), ni, PendingIntent.FLAG_ONE_SHOT);
En su caso si el segundo PendingIntent
es "igual" al anterior, lo reemplaza.
PendingIntents son iguales si todos los siguientes son los mismos:
- El requestCode (segundo parámetro pasado al método de fábrica)
- Todos los datos del
Intent
(tipo, uri, categoría … etc)
Por lo tanto, si no desea que el segundo PendingIntent
anule el anterior, cambie uno de la lista anterior.
- ¿Quieres usar ViewPager, no puede obtener android.support. * Ser reconocido?
- Android Spinner – ¿Cómo eliminar los botones de radio?