android - Alarm Manager setRepeating not waiting till time to go off -


i'm setting alarm go off @ x , current time y , sending alarm @ time y not waiting till time x go off... can tell me why not waiting till proper time go off? sample logcat:

07-17 16:27:13.779: i/projectcaruso(13305): reminder set 07-17 16:27:13.789: i/projectcaruso(13305): setting alarm 07-17 16:27:13.789: i/projectcaruso(13305): zone_offset: 15 07-17 16:27:13.789: i/projectcaruso(13305): sincemidnight: 77233802 07-17 16:27:13.789: i/projectcaruso(13305): test now: 21:27:13 07-17 16:27:13.789: i/projectcaruso(13305): now: 77233802 07-17 16:27:13.789: i/projectcaruso(13305): test send: 16:28:0 07-17 16:27:13.789: i/projectcaruso(13305): send: 59280000 07-17 16:27:13.789: i/projectcaruso(13305): when kick off: 68446198 07-17 16:27:13.979: i/projectcaruso(13455): onreceive 07-17 16:27:13.989: i/projectcaruso(13455): current time:  21:27:14 07-17 16:27:13.989: i/projectcaruso(13455): current mills: 1374096434004 

class:

public class alarm extends broadcastreceiver  {          sharedpreferences mpreferences;      boolean reminder;      string time_selected;       @override      public void onreceive(context context, intent intent)       {             mpreferences = preferencemanager.getdefaultsharedpreferences(context);           reminder = mpreferences.getboolean("frequency", false);          time_selected = mpreferences.getstring("alarm_time", "");           if (reminder) {              log.i("projectcaruso","onreceive");              powermanager pm = (powermanager) context.getsystemservice(context.power_service);              powermanager.wakelock wl = pm.newwakelock(powermanager.partial_wake_lock, "");              wl.acquire();               // put here code.              string second =""+ (system.currenttimemillis()/1000) % 60;              string minute =""+ (system.currenttimemillis() / (1000 * 60)) % 60;              string hour = ""+ (system.currenttimemillis() / (1000 * 60 * 60)) % 24;               string time=hour+":"+minute+":"+second;                log.i("projectcaruso", "current time:  " + time);               log.i("projectcaruso","current mills: " + system.currenttimemillis());              toast.maketext(context, "alarm !!!!!!!!!!", toast.length_long).show(); // example               wl.release();          } else {              cancelalarm(context);          }      }   public void setalarm(context context)  {      mpreferences = preferencemanager.getdefaultsharedpreferences(context);       reminder = mpreferences.getboolean("frequency", false);      time_selected = mpreferences.getstring("alarm_time", "");       if (reminder) {          log.i("projectcaruso","setting alarm");           alarmmanager am=(alarmmanager)context.getsystemservice(context.alarm_service);          intent = new intent(context, alarm.class);          pendingintent pi = pendingintent.getbroadcast(context, 0, i, 0);           // time selected settings information          string[] separated = time_selected.split(":");          long  timeselectedmillis = (long.parselong(separated[0])  *3600000) + (long.parselong(separated[1]) *60000);          log.i("projectcaruso", "zone_offset: " + (calendar.zone_offset));           calendar rightnow = calendar.getinstance();          long sincemidnight = (system.currenttimemillis()) % (24 * 60 * 60 * 1000);           log.i("projectcaruso", "sincemidnight: " + sincemidnight);           string second =""+ (sincemidnight/1000) % 60;          string minute =""+ (sincemidnight / (1000 * 60)) % 60;          string hour = ""+ (sincemidnight / (1000 * 60 * 60)) % 24;           string time=hour+":"+minute+":"+second;            log.i("projectcaruso", "test now: " + time);           log.i("projectcaruso", "now: " + sincemidnight);           second =""+ (timeselectedmillis/1000) % 60;          minute =""+ (timeselectedmillis / (1000 * 60)) % 60;          hour = ""+ (timeselectedmillis / (1000 * 60 * 60)) % 24;           time=hour+":"+minute+":"+second;           log.i("projectcaruso", "test send: " + time);           log.i("projectcaruso", "send: " + timeselectedmillis);             long triggeratmillis = timeselectedmillis - sincemidnight;          if (triggeratmillis < 0) {             triggeratmillis = (86400000 - sincemidnight) + timeselectedmillis;          }          //system.currenttimemillis()          log.i("projectcaruso", "when kick off: " + triggeratmillis);          am.setrepeating(alarmmanager.elapsed_realtime, triggeratmillis, 86400000, pi); // millisec * second * minute      } else {          cancelalarm(context);      }  }   public void cancelalarm(context context)  {      mpreferences = preferencemanager.getdefaultsharedpreferences(context);       reminder = mpreferences.getboolean("frequency", false);      time_selected = mpreferences.getstring("alarm_time", "");       if (reminder) {          log.i("projectcaruso","cancelalarm");          intent intent = new intent(context, alarm.class);          pendingintent sender = pendingintent.getbroadcast(context, 0, intent, 0);          alarmmanager alarmmanager = (alarmmanager) context.getsystemservice(context.alarm_service);          alarmmanager.cancel(sender);      }  } } 

this change alarm code. works , knowledge works fine.

 public void setalarm(context context)  {      mpreferences = preferencemanager.getdefaultsharedpreferences(context);       reminder = mpreferences.getboolean("frequency", false);      time_selected = mpreferences.getstring("alarm_time", "");        time = new time();      now.settonow();       if (reminder) {          log.i("projectcaruso","setting alarm");           alarmmanager am=(alarmmanager)context.getsystemservice(context.alarm_service);          intent = new intent(context, alarm.class);          pendingintent pi = pendingintent.getbroadcast(context, 0, i, 0);           // time selected settings information          string[] separated = time_selected.split(":");            //create offset current time in alarm go off.          calendar cal = calendar.getinstance();          cal.settimeinmillis(system.currenttimemillis());          cal.set(calendar.hour_of_day, (int) long.parselong(separated[0]));          cal.set(calendar.minute, (int) long.parselong(separated[1]));           log.i("projectcaruso", "time set go off: " + cal.gettimeinmillis());          am.setrepeating(alarmmanager.rtc_wakeup, cal.gettimeinmillis(), 86400000, pi); // millisec * second * minute      } else {          cancelalarm(context);      }  } 

Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -