If you want to set multiple alarms (repeating or single), then you just need to create their PendingIntent
s with different requestCode
. If requestCode
is the same, then the new alarm will overwrite the old one.
Here is the code to create multiple single alarms and keep them in ArrayList
. I keep PendingIntent
's in the array because that's what you need to cancel your alarm.
// context variable contains your `Context`
AlarmManager mgrAlarm = (AlarmManager) context.getSystemService(ALARM_SERVICE);
ArrayList<PendingIntent> intentArray = new ArrayList<PendingIntent>();
for(i = 0; i < 10; ++i)
{
Intent intent = new Intent(context, OnAlarmReceiver.class);
// Loop counter `i` is used as a `requestCode`
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, i, intent, 0);
// Single alarms in 1, 2, ..., 10 minutes (in `i` minutes)
mgrAlarm.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 60000 * i,
pendingIntent);
intentArray.add(pendingIntent);
}
Also, see this question: How to set more than one alarms at a time in android?.