¿Es posible crear varios PendingIntents con el mismo código de solicitud y diferentes extras?

Estoy usandoAlarmManager para programar en cualquier lugar entre 1 y 35 alarmas (según la entrada del usuario). Cuando el usuario solicita programar nuevas alarmas, debo cancelar las alarmas actuales, por lo que creo todas mis alarmas con el mismo código de solicitud, definido en unfinal variable.

// clear remaining alarms
Intent intentstop = new Intent(this, NDService.class);
PendingIntent senderstop = PendingIntent.getService(this,
            NODIR_REQUESTCODE, intentstop, 0);
am.cancel(senderstop);

// loop through days
if (sched_slider.getBooleanValue())
for (int day = 1; day < 8; day++) {

    if (day == 1 && sun.isChecked())
                scheduleDay(day);
    if (day == 2 && mon.isChecked())
                scheduleDay(day);
    if (day == 3 && tue.isChecked())
                scheduleDay(day);
    if (day == 4 && wed.isChecked())
                scheduleDay(day);
    if (day == 5 && thu.isChecked())
                scheduleDay(day);
    if (day == 6 && fri.isChecked())
                scheduleDay(day);
    if (day == 7 && sat.isChecked())
                scheduleDay(day);
}

...

public void scheduleDay(int dayofweek) {
    Intent toolintent = new Intent(this, NDService.class);
    toolintent.putExtra("TOOL", "this value changes occasionally");
    PendingIntent pi = PendingIntent.getService(this,
                NODIR_REQUESTCODE, toolintent, 0);
    calendar.set(Calendar.DAY_OF_WEEK, dayofweek);
    calendar.set(Calendar.HOUR_OF_DAY, hour);
    calendar.set(Calendar.MINUTE, minute);
    calendar.set(Calendar.SECOND, 0);
    am.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(),
                AlarmManager.INTERVAL_DAY * 7, pi);
}

Aquí, si el usuario tienesun (que es un CheckBox) marcado, programará una alarma para que se ejecute todos los domingos a lashour yminute. Puede ver que cada alarma creada de esta manera tiene el mismo código de solicitud, peroTOOL Cambios extra a veces por cada alarma.

Sin embargo, en mis pruebas, cuando suena la alarma y mi Servicio se ejecuta, los extras de la Intención ahora estánnull. Esta pregunta sugiere que usandoPendingIntent.FLAG_CANCEL_CURRENT resolverá esto, pero eso no cancelaría los otros PendingIntents?

En breve:

¿Alguien puede explicar cómo funcionan los PendingIntents, en referencia a crear varios con el mismo código de solicitud y diferentes extras? ¿Qué banderas (si las hay) debo usar?

Respuestas a la pregunta(2)

Su respuesta a la pregunta