Я использую 2 pendingIntents
с 2 отдельными кодами запроса. Для обоих я устанавливаю 2 повторяющихся сигнала. Один должен повторяться каждые 20 секунд, а следующий должен повторяться каждые 2 минуты.
Intent myIntent = new Intent(this,TestCall.class);
myIntent.putExtra("Tag", "P1");
pendingIntent = PendingIntent.getActivity(this, 0, myIntent, 0);
myIntent.putExtra("Tag", "P2");
pendingIntent1=PendingIntent.getActivity(this, 2, myIntent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, reqdate, pendingIntent);
if(rSnooze!=0)
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, reqdate, rSnooze, pendingIntent);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, reqdate+(2*60*1000), 2*60*1000,pendingIntent1);
Я отменяю их, если пользователь нажимает «ОК» в сообщении с предупреждением в действии TestCall. Если пользователь нажимает дремать, он дремлет.
Но это не соответствует моим требованиям (первая задержка будильника 20 секунд, вторая повтор будильника 2 минуты).