Я создал BroadcastReceiver, который отправляет уведомления в Android.Вот мой код
long when = System.currentTimeMillis();
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
// Create an explicit intent for an Activity in your app
Intent intent = new Intent(context, NotificationActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra("id_notifica", id_notifica);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
Intent intent_si = new Intent(context, NotificationYesActivity.class);
intent_si.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra("id_notifica", id_notifica);
PendingIntent pendingIntent_si = PendingIntent.getActivity(context, 1, intent_si, 0);
Intent intent_post = new Intent(context, NotificationPosticipaActivity.class);
intent_post.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra("id_notifica", id_notifica);
PendingIntent pendingIntent_post = PendingIntent.getActivity(context, 2, intent_post, 0);
//Alarm Sound
Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
String channelId = "Your_channel_id";
NotificationChannel channel = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
channel = new NotificationChannel(channelId,
"Channel human readable title", NotificationManager.IMPORTANCE_DEFAULT);
notificationManager.createNotificationChannel(channel);
}
NotificationCompat.Builder mNotifyBuilder = new NotificationCompat.Builder(
context, channelId).setSmallIcon(R.drawable.logocartella)
.setContentTitle("Promemoria farmaco")
.setContentText("Hai preso " + id_farmaco + " alle " + notify_time + "?")
.setSound(alarmSound)
.setWhen(when)
.addAction(0, "Si", pendingIntent_si) // #0
.addAction(0, "Posticipa", pendingIntent_post)
.setAutoCancel(true)
.setWhen(when)
.setContentIntent(pendingIntent)
.setVibrate(new long[]{1000, 1000, 1000});
notificationManager.notify(id_notifica, mNotifyBuilder.build());
В моем NotificationYesActivity я получаю значение id_notifica
int notificationID = getIntent().getIntExtra("id_notifica", 0);
Но проблема в том, что, если у меня более одного уведомления, моя переменная id_notifica всегда установлена наценность окончательного уведомления.Как я могу получить правильную id_notiica, связанную с определенным уведомлением?
Я думаю, что мне нужно изменить флаги, но я не знаю точно, как.