У меня есть настройка повторного диспетчера аварийных сигналов, чтобы запустить сервис, который извлекает местоположение и отправляет SMS, но в настоящее время я записываю только продолжительность времени в файле, чтобы проверить точность сигнала ,стартовый сервис, который повторяется в начале каждого часа и извлекает информацию с фиксированным интервалом времени
Я нахожу, что диспетчер аварийной сигнализации не работает нормально, я установил один интервал времени, но он выстрелил через 30 мин. промежуток. Я оставил его на один день и обнаружил, что после 12 часов часы точность сигнала правильная. Что происходит ??
Мой класс активности, которые начинаются тревоги:
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 PM время .Отель файл, созданный службы показывают время срабатывания будильника ,Проверьте это:
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 ...' –
Я вызываю диспетчер аварийной сигнализации один раз, и он повторяет сигнал тревоги, но время не фиксировано. –