JobService в Android
Является ли служба единственной, которая запускается при вызове службы? Я имею в виду, что когда приложение запускается, оно имеет функцию инициализации, которая загружает вспомогательные службы, базы данных, IoC. В iOS вызывается делегат приложения, чтобы вы могли инициировать свои вспомогательные сервисы? Это также происходит для Android? Я пытался, и это не похоже. Может кто-то подтвердить это поведение. Я мог бы что-то упустить
1 ответ
Я предлагаю взглянуть на документацию по Android здесь. Они хорошо объясняют работу службы в Android.
Если вы создаете простой старый сервис, у него будет метод onCreate(), который вы можете переопределить. Это будет вызвано, когда ваш сервис будет впервые создан. Если я правильно понимаю ваш вопрос, я считаю, что это то, что вы ищете. Здесь вы можете инициализировать все, что нужно вашему сервису.
Альтернативой является onStartCommand, который вы также можете использовать для выполнения задач запуска. До вашей конкретной потребности.
ОБНОВЛЕНИЕ: после уточнения вопроса. Насколько я знаю, вы бы настроили любую логику инициализации из onStartJob. Тем не менее, JobService расширяет Сервис, так что у вас все еще есть доступ к onCreate.
Теоретически (я не проверял это) вы могли бы вызвать вашу логику инициализации, чтобы она вызывалась при первой настройке сервиса.
Альтернативой, которую я использовал в прошлом, является библиотека Android-Job, созданная командой в Evernote. Для нашего варианта использования мы смогли инициализировать и перейти непосредственно к работе. Он обладает дополнительным бонусом обратной совместимости, решая, какую логику планирования использовать, основываясь на пользовательской версии Android.