I have seen a lot of tutorials and been trying for 2 hours now , though something is still wrong. I am very nervous now :) I want to set an alarm e.g. to 16:25 to go off, but nothing happens. I have this code:
Calendar cur_cal = new GregorianCalendar();
cur_cal.setTimeInMillis(System.currentTimeMillis());
Calendar cal = new GregorianCalendar();
cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR));
cal.set(Calendar.HOUR_OF_DAY, 16);
cal.set(Calendar.MINUTE, 25);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
I have also tried this:
cal.set(Calendar.AM_PM, cur_cal.get(Calendar.AM_PM));
cal.set(Calendar.HOUR, 4);
My final goal is to make it a repeating alarm, e.g. it should go off every day at the set time.
Update 01.17.2011. Still not working. I have this code:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2011);
cal.set(Calendar.MONTH, Calendar.JANUARY);
cal.set(Calendar.DAY_OF_MONTH, 17);
cal.set(Calendar.HOUR_OF_DAY, 16);
cal.set(Calendar.MINUTE, 58);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
I have also tried this:
cal.set(Calendar.HOUR, 4);
cal.set(Calendar.AM_PM, Calendar.PM);
and this:
cal.set(Calendar.HOUR_OF_DAY, 4 );
cal.set(Calendar.AM_PM, Calendar.PM);
The following code works perfectly for alarm. The date and time i mentioned here is : 2012- June- 28, 11:20:00 AM. And the most important thing is, month is specified from 0 t0 11 only. Means June should be specified by 5.
Usually you shouldn't obtain
Calendar
like you do, there isCalendar.getInstance()
method for that:That gives you a calendar with all fields set to current date, then just:
You are not setting the year in your
Calendar
object.Also, note that
new GregorianCalendar()
already sets the value to the current date and time.