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.
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