Search code examples
androidcalendaralarmmanager

How to set times for alarms to calendar


start_alarm.setOnClickListener(new View.OnClickListener() {
        @TargetApi(Build.VERSION_CODES.M)

        @Override
        public void onClick(View v) {

            calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getCurrentHour());
            calendar.set(Calendar.MINUTE, alarmTimePicker.getCurrentMinute());


            int hour = alarmTimePicker.getCurrentHour();

            int minute = alarmTimePicker.getCurrentMinute();;


            String hour_string = String.valueOf(hour);
            String minute_string = String.valueOf(minute);


            if (hour>12) {
                hour_string = "0"+String.valueOf(hour - 12);
            }

            if (minute<12) {
                minute_string ="0"+ String.valueOf(minute);

            }

            AddData(hour_string,minute_string,1);

            setAlarmText("Alarm set to " + hour_string + ":" + minute_string);
            //Toast.makeText(getApplicationContext(), "You set the alarm", Toast.LENGTH_SHORT).show();

            myIntent.putExtra("extra", "yes");

            pending_intent = PendingIntent.getBroadcast(Alarm.this, _id, myIntent, PendingIntent.FLAG_ONE_SHOT);


            alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pending_intent);


        }

    });

I am building an alarm application.I have successfully implemented basic alarm functions.

From that code I can add one time to my calendar , but how can I add more than one time ? Because I have a list of times i need it to ring


Solution

  • Instead of having multiple Alaram, You can take the latest event and you can put the Alarm for that, When the alarm triggeres, you can check for next upcoming events.

    In this case you can have full control of every event.

    start_alarm.setOnClickListener(new View.OnClickListener() {
            @TargetApi(Build.VERSION_CODES.M)
    
            @Override
            public void onClick(View v) {
    
                // Remove the old alaram and get the new event and put the alarm for that
    
            }
    
        });
    

    And in your broadcast receiver, check again the latest event and put alarm for that.