Важный факт о bindService
Если компонент вызывает bindService () для создания службы, а onStartCommand () не вызывается, служба работает только до тех пор, пока компонент привязан к ней. После того, как служба не связана со всеми своими клиентами, система уничтожает ее.
Попробуйте использовать запущенную службу
Запущенная служба - это та, которую запускает другой компонент, вызывая startService (), что приводит к вызову метода onStartCommand () службы.
Когда служба запускается, ее жизненный цикл не зависит от компонента, который ее запустил. Служба может работать в фоновом режиме неограниченное время, даже если компонент, который ее запустил, уничтожен. Таким образом, служба должна остановить себя, когда ее работа будет завершена путем вызова stopSelf (), или другой компонент может остановить ее, вызвав stopService ().
Компонент приложения, такой как действие, может запустить службу, вызывая startService () и передавая Намерение, которое определяет службу и включает в себя любые данные для использования службы. Служба получает это намерение в методе onStartCommand ().
Обработка onStartCommand
Обратите внимание, что метод onStartCommand () должен возвращать целое число. Целое число - это значение, которое описывает, как система должна продолжать обслуживание в случае, если система его убивает. Реализация по умолчанию для IntentService обрабатывает это для вас, но вы можете изменить его. Возвращаемое значение из onStartCommand () должно быть одной из следующих констант:
START_NOT_STICKY
Если система завершает работу службы после возврата onStartCommand (), не создавайте заново службу, если нет ожидающих намерений доставки. Это самый безопасный способ избежать запуска службы, когда в этом нет необходимости, и когда ваше приложение может просто перезапустить незавершенные задания.
START_STICKY Если система завершает работу службы после возврата onStartCommand (), заново создайте службу и вызовите onStartCommand (), но не выполняйте повторную доставку последнего намерения. Вместо этого система вызывает onStartCommand () с нулевым намерением, если только нет ожидающих намерений запустить службу. В этом случае эти намерения доставлены. Это подходит для медиаплееров (или аналогичных служб), которые не выполняют команды, но работают неопределенно долго и ожидают задания.
START_REDELIVER_INTENT Если система завершает работу службы после возврата onStartCommand (), заново создайте службу и вызовите onStartCommand () с последним намерением, которое было доставлено службе. Любые ожидающие намерения доставляются по очереди. Это подходит для служб, которые активно выполняют работу, которая должна быть немедленно возобновлена, например, для загрузки файла.
Примечание. В вашем случае вы должны использовать Started Service и возвращать START_STICKY или START_REDELIVER_INTENT (в зависимости от ваших требований) в onStartCommand ()
Проверьте официальную документацию для подробного описания Услуг.
Надеюсь, это поможет.