PeriodicWorkRequest не повторяется на тике

Я устанавливаю PeriodicWorkRequest на 15 минут. Но его повторение иногда 10, иногда 17 минут. Как установить максимальное отклонение в несколько секунд.

 val workRequest = PeriodicWorkRequest.Builder(NotificationWork::class.java, 15, TimeUnit.MINUTES).build()
        WorkManager.getInstance().enqueue(workRequest)

13:10

13:26

13:51

14:01

Могу ли я установить фоновую работу как будильник, иначе Workmanager будет работать так всегда?

Мой блок кода такой же, как указано выше.


person 6155031    schedule 14.01.2019    source источник
comment
Точное планирование неэффективно с точки зрения энергопотребления, поэтому Android не позволит вам его получить.   -  person Marko Topolnik    schedule 14.01.2019
comment
Тогда мне нужно использовать AlarmManager для пунктуальной работы, например, приложение для будильника? @MarkoTopolnik   -  person 6155031    schedule 14.01.2019
comment
Может быть, вам это удастся, но неточность есть не просто так. Ваше приложение может быть помечено как разряжающее батарею.   -  person Marko Topolnik    schedule 14.01.2019
comment
У вас он в активном приложении работает только в фоновом режиме? Как насчет убитого приложения? У меня вообще не работает, если приложение убито.   -  person J.D.1731    schedule 30.01.2019


Ответы (1)


Как сказал Марко, точное планирование неэффективно. API-интерфейсы WorkManager не гарантируют график именно по этой причине. Если вам нужен строгий график, вы можете взглянуть на API-интерфейсы AlarmManager для этого.

person Rahul    schedule 14.01.2019