Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Repeat Alarm once in a week in android

I am trying to develop alarm functionality in a my app which runs on a week days specified by user on fixed time. Problem here is that my scheduler running for all days instead of running on specified day . here is the code i wrote for this please help to fix this

Calendar calNow = Calendar.getInstance();
                SimpleDateFormat simpDate;
                simpDate = new SimpleDateFormat("kk:mm:ss");
                if(in_Date==1)
                {
                    calNow.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calNow.set(Calendar.MINUTE, minute);
                    calNow.set(Calendar.SECOND, 0);
                    calNow.set(Calendar.MILLISECOND, 0);
                }
            else if(in_Date==2)
                {
                    calNow.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    calNow.set(Calendar.MINUTE, minute);
                    calNow.set(Calendar.SECOND, 0);
                    calNow.set(Calendar.MILLISECOND, 0);
                    calNow.set(Calendar.DAY_OF_WEEK,in_SelectedDay);
                }
                etTime.setText(simpDate.format(calNow.getTime()));
                Seconds=calNow.getTimeInMillis();

private void setAlarm(){

    //etTime.setText(simpDate.format(calNow.getTime()));

    Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
    pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0);
    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);

     if(in_Date==1)
     {

       alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Seconds,alarmManager.INTERVAL_DAY,pendingIntent);
     }
    else if(in_Date==2)
    {

        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Seconds,1 * 60 * 60 * 1000,pendingIntent);
    }

}
like image 201
Supreet Avatar asked Apr 26 '13 13:04

Supreet


People also ask

How do I set a repeated alarm for the day?

Set an alarm for when you want the repeated alarm to start for that day Set the snooze repeat to Forever, so it doesn't stop snoozing When the alarm rings, just snooze. Only dismiss it when you're done with that alarm for the day. This will repeat the next day.

What is repeating alarms on Android and how does it work?

When you use this method, Android synchronizes multiple inexact repeating alarms and fires them at the same time. This reduces the drain on the battery. For the rare app that has rigid time requirements—for example, the alarm needs to fire precisely at 8:30 a.m., and every hour on the hour thereafter—set an exact alarm by calling setRepeating ().

How do I schedule alarm every hour on my phone?

Answer Wiki. Scheduling alarm every hour is very easy even if you don’t want to install any third party/extra app on your phone. Go to Alarm app (default app) on your phone. Here you can set as many different alarms you want at an interval of 1 Hr (or whatever you choose). You can also set the days to repeat the alarm.

How do I Stop my alarm from going off every day?

Set the snooze repeat to Forever, so it doesn't stop snoozing When the alarm rings, just snooze. Only dismiss it when you're done with that alarm for the day. This will repeat the next day. We've put together a list of 8 money apps to get you on the path towards a bright financial future.


1 Answers

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Seconds, AlarmManager.INTERVAL_DAY, pendingIntent);

In this line you set the start time to the user selected day, but then set the interval to INTERVAL_DAY.

You should use INTERVAL_DAY * 7 to make sure it repeats on a weekly basis instead:

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Seconds, AlarmManager.INTERVAL_DAY * 7, pendingIntent);
like image 107
Leon Lucardie Avatar answered Nov 03 '22 18:11

Leon Lucardie