Search code examples
androidalarmmanageralarm

Set Repeated alarm at specific time every day


I try to use alarm manager to run alarm at specific time every day. I am using this code

Intent intent = new Intent(AlarmSettings.this, AlarmService.class);
                        intent.putExtra("i", i);
PendingIntent mAlarmSender = PendingIntent.getService(AlarmSettings.this, Id, intent, 0);

AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);

am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),Calendar.getInstance().getTimeInMillis()+(24*60*60*1000), mAlarmSender);}

the problem was in if cal.getTimeInMillis() value is in the past the alarm run immediately, i do not know why, and when cal.getTimeInMillis() value is in the future it runs correctly at its time.

I need to make it run at specific time every day.


Solution

  • It looks like your call to

    setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
    

    Try to set proper triggerAtTime (in the future) - like

    Calendar.getInstance().getTimeInMillis()+(24*60*60*1000)
    

    The third param (interval) should obviously be your interval, like

    24*60*60*1000