alarmmanager - set repeated alarm manager for every hour in android -


i want fetch location every hours in android . use alarm manager , set repeated alarm every hour , want write file after fix time i.e @ 8 , 12 pm . got problem in setting alarm manager , while set every 1 hour execute in 1/2 hour .

on button click start service :         servicebutton.setonclicklistener(new onclicklistener() {          @override         public void onclick(view v) {              intent myintent = new intent(automainactivity.this, trackerservice.class);              pendingintent = pendingintent.getservice(automainactivity.this, 0, myintent, 0);              alarmmanager alarmmanager = (alarmmanager)getsystemservice(alarm_service);             alarmmanager.setinexactrepeating(alarmmanager.elapsed_realtime_wakeup, alarm_trigger_at_time,                     3600000, pendingintent);              //3600000 1hrs              finish();         }     }); 

and service class :

tracker service.class  string final_string; sharedpreferences pref; static final int start_time = 8; static final int mid_time = 12;      java.util.date systemdates = calendar.getinstance().gettime();      int hour = calendar.getinstance().get(calendar.hour_of_day);      if(hour == start_time)         {             edit.putstring("smsdata", final_string);             edit.commit();              //sendsms(start_tag+pref.getstring("smsdata", ""));             edit.putstring("smsdata", "");             edit.commit();         }else {              system.out.println("currentdate:"+simpledateformat.tostring());             system.out.println("current_time:"+currenttime);              editor edit = pref.edit();             edit.putstring("smsdata", pref.getstring("smsdata", "")+final_string+"#");             edit.commit();              if(hour==mid_time)             {                 //sendsms(start_tag+pref.getstring("smsdata", ""));                 generatenoteonsd("\n"+start_tag+pref.getstring("smsdata", ""));                 edit.putstring("smsdata", "");                 edit.commit();                 system.out.println("mid time");              }          } 

when execute service start on every 30min. want on every 60min.

first, want use 1 of available constants, interval_hour, setinexactrepeating().

second, setinexactrepeating() inexact. android reserves right flex times of alarms coalesce events other scheduled inexact alarms.

so, try switching briefly setrepeating(). if works expect, behavior due "inexact" nature of setinexactrepeating().

also, can use adb shell dumpsys alarm examine scheduled alarms. may have 2 alarms scheduled, each going off once per hour.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -