1

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);

           }
Navoneel Talukdar
  • 4,393
  • 5
  • 21
  • 42
Jay
  • 11
  • 1
  • Check this out https://stackoverflow.com/questions/8469705/how-to-set-multiple-alarms-using-alarm-manager-in-android – kelvin andre Jul 21 '19 at 05:33

0 Answers0