android - Pending Intent causes delay -
trying set multiple alarms using pending intent, alarms not broadcast in correct time. might causing ?
public void clicker (view view) { calendar calendar = calendar.getinstance(); int hour = calendar.get(calendar.hour_of_day); int minute = calendar.get(calendar.minute); timepickerdialog mtimepicker; mtimepicker = new timepickerdialog(addalarm.this, new timepickerdialog.ontimesetlistener() { @override public void ontimeset(timepicker timepicker, int selectedhour, int selectedminute) { calendar calendar = calendar.getinstance(); calendar.set(calendar.hour_of_day, selectedhour); calendar.set(calendar.minute, selectedminute); int c_hour,c_min; string format; c_hour=selectedhour; c_min=selectedminute; if (c_hour == 0) { c_hour += 12; format = "am"; } else if (c_hour == 12) { format = "pm"; } else if (c_hour > 12) { c_hour -= 12; format = "pm"; } else { format = "am"; } string formattime = string.format("%02d : %02d %s", c_hour, c_min, format); textview dimple = (textview)findviewbyid(r.id.timetext); dimple.settext(formattime); setalarm(calendar); } }, hour, minute, false);// yes 24 hour time mtimepicker.settitle("select time"); mtimepicker.show(); } private void setalarm(calendar targetcal) { intent alarmintent = new intent(addalarm.this, alarmreceiver.class); pendingintent sender = pendingintent.getbroadcast(addalarm.this, pen, alarmintent, pendingintent.flag_one_shot); alarmmanager alarmmanager = (alarmmanager)getsystemservice(alarm_service); alarmmanager.set(alarmmanager.rtc_wakeup, targetcal.gettimeinmillis(), sender); }
this how set alarm, pending intents uniquely set system time in ms, there no warning or error in logcat, alarms work fine, problem not in time, expected 1 or 2 mins of delay? suggestions ?
after using calendar.getinstance();
in ontimeset
use calendar.settimeinmillis(system.currenttimemillis());
maybe help. make sure use different requestcodes pending intents in case of multiple alarms
Comments
Post a Comment