我已經設置了重複的鬧鐘管理器來啓動獲取位置和發送短信的服務,但是目前我只在文件中寫入時間來檢查鬧鐘的準確度。開始服務,每小時重複並在固定時間間隔獲取信息
我發現鬧鐘管理器工作不正常,我設置了一個小時的時間間隔,但它在30分鐘時被解僱。間隔。我離開了它一天,發現12點鐘後鬧鐘的準確性是正確的。發生了什麼 ??
其啓動我Activity類報警:
enter code here
public static final long ALARM_TRIGGER_AT_TIME = SystemClock.elapsedRealtime() + 20000;
public static final long ALARM_INTERVAL = 1000 * 60 * 60 ;
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Intent myIntent = new Intent(AutoMainActivity.this, TrackerService.class);
pendingIntent = PendingIntent.getService(AutoMainActivity.this, 0, myIntent, 0);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,ALARM_TRIGGER_AT_TIME, 1000 * 60 * 60,pendingIntent);
,我的服務類:
TraceService :
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
//writing in file to view time
java.util.Date systemDates = Calendar.getInstance().getTime();
simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
currentTime = simpleDateFormat.format(systemDates);
// create file and write current time
generateNoteOnSD("ONSTART"+currentTime+"\n","Onstart.txt");
}
執行這個應用程式在下午3點18分的時間後通過服務創造.The文件顯示報警時間。檢查:
alarm manager time
ONSTART2013-05-13-15:18:26
ONSTART2013-05-13-15:21:58
ONSTART2013-05-13-15:54: 21
ONSTART2013-05-13-16:18:25
ONSTART2013-05-13-17:18:26
ONSTART2013-05-13-17:49:21
ONSTART2013-05-13-18:18:25
ONSTART2013-05-13-19:18:28
ONSTART2013-05-13-20:10:51
ONSTART2013 -05-13-20:18:29
ONSTART2013-05-13-20:48:49
ONSTART2013-05-13-21:18:30
ONSTART2013-05-13-21:58:58
ONSTART2013-05-13-22:18:38
ONSTART2013-05-13-22:56:00
ONSTART2013-05- 13-23:18:43
ONSTART2013-05-13-23:48:49
ONSTART2013-05-14-00:18:44
ONSTART2013-05-14-01:18 :45
ONSTART2013-05-14-02:18:45
ONSTART2013-05-14-03:18:45
ONSTART2013-05-14-04:18:45
ONSTART2013-05 -14-05:18:44
ONSTART2013-05-14-06:18:44
ONSTART2013-05-14-07:18:44
您可以檢查,當警報管理器啓動在15:1 8點,30分鐘後再次開始。約。但12點鐘後它工作正常!如何解決它。我不需要在那之前每隔一小時就開始一次鬧鐘。
你確定報警設置代碼只調用一次嗎? 'alarmManager.setRepeating ...' – 2013-05-14 05:46:42
我打電話給鬧鐘管理員一次,它正在重複鬧鐘,但時間不固定。 – 2013-05-14 06:08:38