I am trying to set multiple alarms in android studio. I set 2 arrays to save AlarmManager
and PendingIntent
with different request code.
Once I click button It should save a new alarm and reset previous alarm. But I don't know why the only alarm works is the the last one I set.
alarm_on.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
calendar.set(Calendar.HOUR_OF_DAY, alarm_timepicker.getHour());
calendar.set(Calendar.MINUTE, alarm_timepicker.getMinute());
if(alarm_array.size() == 0){
//tell clock "alarm_on" pressed
Intent my_intent = new Intent(MainActivity.this, Alarm_Receiver.class);
my_intent.putExtra("extra", "on");
pending_intent = PendingIntent.getBroadcast(MainActivity.this,
0, my_intent, PendingIntent.FLAG_ONE_SHOT);
// Set the alarm manager
alarmManagers[0] = (AlarmManager)context.getSystemService(ALARM_SERVICE);
alarmManagers[0].set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
pending_intent);
Alarm_Infor af = new Alarm_Infor(pending_intent, 0, calendar);
alarm_array.add(af);
}else {
Intent my_intent = new Intent(MainActivity.this, Alarm_Receiver.class);
my_intent.putExtra("extra", "on");
for (int i = 0; i < alarm_array.size(); i++) {
// Set the alarm manager
alarmManagers[i] = (AlarmManager)context.getSystemService(ALARM_SERVICE);
alarmManagers[i].set(AlarmManager.RTC_WAKEUP, alarm_array.get(i).getCalendar().getTimeInMillis(),
alarm_array.get(i).getPending_intent());
}
pending_intent = PendingIntent.getBroadcast(MainActivity.this,
alarm_array.size(), my_intent, PendingIntent.FLAG_ONE_SHOT);
alarmManagers[alarm_array.size()] = (AlarmManager)context.getSystemService(ALARM_SERVICE);
alarmManagers[alarm_array.size()].set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pending_intent);
Alarm_Infor af = new Alarm_Infor(pending_intent, alarm_array.size(),calendar);
alarm_array.add(af);
}