Приемник вещания срабатывает поздно, чем должно быть - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь запустить приемник в определенное время суток, а именно в 12 часов утра, но иногда он срабатывает в 1 или 2 часа ночи. в соответствии с сигнализацией, и я выясняю, она начинается в 1, 2 или даже в 3 часа ночи, а не так, как я настроил.

 calendar = Calendar.getInstance();
 calendar.setTimeInMillis(System.currentTimeMillis());
 calendar.set(Calendar.HOUR_OF_DAY,0);
 calendar.set(Calendar.MINUTE,0);
 calendar.set(Calendar.SECOND,0);

 Intent intent = new Intent(getActivity(), PrefAlarm.class);

 long firstMillis = System.currentTimeMillis(); 

 alarm = (AlarmManager)  getActivity().getSystemService(getActivity().ALARM_SERVICE);

  pIntent = PendingIntent.getBroadcast(getActivity(),  PrefAlarm.REQUEST_CODE2,intent ,PendingIntent.FLAG_CANCEL_CURRENT);

  alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis( ),AlarmManager.INTERVAL_DAY,pIntent);

1 Ответ

0 голосов
/ 11 ноября 2019

Если вы используете setInexactRepeating(), время его запуска будет неточно . Это означает, что Android может регулировать время запуска для экономии заряда батареи (обычно путем задержки запуска до тех пор, пока устройство не активируется). Прочитайте документацию о AlarmManager и JobScheduler и о том, как получить желаемое поведение для вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...