Смущен использованием WorkManager поверх AlarmManager - PullRequest
0 голосов
/ 10 мая 2019

Я должен выполнить этот вариант использования (не код, а правильное использование) Вариант использования : мне нужно получать некоторые данные из сети каждый день в 00:30. Эти данные предоставляют мне определенное время, и один из них около 4:30 (меняется каждый день на +1 минуту -1 минуту, зависит от ответа сервера, не может использовать ++ или - логику где-либо). На этом (4:30) мне нужно запланировать будильник. Что неясно:

Должен ли я использовать AlarmManager напрямую для этого?

Должен ли я использовать WorkManager, чтобы узнать время, когда мне нужно подать сигнал тревоги, а затем использовать AlarmManager?

Должен ли я просто использовать WorkManager?

Причина, по которой я запутался, заключается в том, что некоторые прочитанные мною блоги говорят, что лучше придерживаться AlarmManager, если у меня есть какая-то работа в определенное время, но, тем не менее, я могу сделать это с WorkManager

Так как это сделать?

1 Ответ

3 голосов
/ 10 мая 2019

Должен ли я использовать AlarmManager напрямую для этого?

Да, вы должны. Насколько мне известно, AlarmManager - лучший вариант для выполнения подобных задач, а также более безопасный вариант при работе с doze mode . Используйте первый будильник, чтобы установить второй будильник в определенное время.

Должен ли я использовать WorkManager, чтобы узнать время, когда мне нужно подать сигнал тревоги, а затем использовать AlarmManager?

Если вы хотите использовать этот подход, вам нужно вызвать AlarmManager и отправить Worker на WorkManager. WorkManager должен запускаться раньше определенного времени, и не гарантируется, что Worker завершит работу или будет выполнен до 4:30.

Причина, по которой я запутался, заключается в том, что некоторые прочитанные мною блоги говорят, что лучше придерживаться AlarmManager, если у меня есть какая-то работа в определенное время, но, тем не менее, я могу сделать это с WorkManager

WorkManager не гарантирует время выполнения. Это, вероятно, может сделать это в будущем.

Должен ли я просто использовать WorkManager?

Нет, по причинам, изложенным ранее. Android-Job - это кратковременный ответ вашего варианта использования, если вы хотите использовать планировщик заданий. Также вы можете увидеть таблицу характеристик и отличий, если перейдете по ссылке.

...