Получить список зарегистрированных ожидающих намерений в ОС Android

Я регистрирую аварийные сигналы, которые я планирую выполнить в определенный момент времени, и это может быть много аварийных сигналов в зависимости от размера запланированного списка. Но у меня есть два вопроса, которые мне не ясны:

1) Как я могу запросить у ОС информацию об ожидающих намерениях, которые я регистрирую? Мне нужно это для тестирования. Псудокод для того, что я хочу, будет примерно таким:

List intentsInOS = context.getAllPendingIntentsOfType(AppConstants.INTENT_ALARM_SCHEDULE));

2) См. Ожидающее намерение, которое я создаю, я предоставляю действие и дополнительные данные (идентификатор расписания).

private Intent getSchedeuleIntent(Integer id) {

    Intent intent = new Intent(AppConstants.INTENT_ALARM_SCHEDULE);
    intent.putExtra(AppConstants.INTENT_ALARM_SCHEDULE_EXTRA, id);

    return intent;
}

Но мы также говорим, что у намерения есть FLAG_CANCEL_CURRENT. Будет ли он отменять все ожидающие намерения одним и тем же действием, или он должен иметь одинаковые действия и дополнительные данные?

PendingIntent pendingIntent = PendingIntent.getBroadcast(context.getApplicationContext(), 0, getSchedeuleIntent(schedule.id), PendingIntent.FLAG_CANCEL_CURRENT);

Мой код

@Override
public void run() {

    List schedules = dbManager.getScheduledLocations();
    if(schedules == null || schedules.isEmpty()){
        return;
    }

    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    //alarmManager.

    // we need to get the number of milliseconds from current time till next hour:minute the next day.
    for(ScheduledLocation schedule : schedules){

        long triggerAtMillis = DateUtils.millisecondsBetweenNowAndNext(now, schedule.hour, schedule.minute, schedule.day);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context.getApplicationContext(), 0, getSchedeuleIntent(schedule.id), PendingIntent.FLAG_CANCEL_CURRENT);

        alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtMillis, MILLISECONDS_IN_WEEK, pendingIntent);
    }

    // List intentsInOS = context.getAllPendingIntentsOfType(AppConstants.INTENT_ALARM_SCHEDULE));

}


private Intent getSchedeuleIntent(Integer id) {

    Intent intent = new Intent(AppConstants.INTENT_ALARM_SCHEDULE);
    intent.putExtra(AppConstants.INTENT_ALARM_SCHEDULE_EXTRA, id);

    return intent;
}

Ответы на вопрос(1)

Ваш ответ на вопрос