Если вы запускаете службу с помощью startService (), то вам следует остановить ее с помощью stopService () .
Существует две причины, по которым система может запускать службу. Если кто-то вызывает Context.startService (), то система извлекает службу (создает ее и при необходимости вызывает ее метод onCreate ()), а затем вызывает ее метод onStartCommand (Intent, int, int) с аргументами, предоставленными клиентом. В этот момент служба продолжит работу до вызова Context.stopService () или stopSelf (). Обратите внимание, что множественные вызовы Context.startService () не являются вложенными (хотя они приводят к нескольким соответствующим вызовам onStartCommand ()), поэтому независимо от того, сколько раз он запущен, служба будет остановлена, как только Context.stopService () или stopSelf () называется; однако службы могут использовать свой метод stopSelf (int), чтобы гарантировать, что служба не будет остановлена до тех пор, пока начальные намерения не будут обработаны.
Вы можете привязать к сервису столько ServiceConnection, сколько захотите, с помощью bindService () , но обратите внимание на флаг, который вы ему передали. Если вы передадите 0, то при вызове stopService () служба будет остановлена (я не знаю точно, что происходит с вами ServiceConnection). В противном случае, если вы хотите, чтобы ваша служба работала до тех пор, пока ServiceConnection не будет привязана к ней, используйте BIND_AUTO_CREATE .
это из stopService ():
Запросить остановку данной службы приложения. Если служба не запущена, ничего не происходит. В противном случае он остановлен. Обратите внимание, что вызовы startService () не учитываются - это останавливает службу независимо от того, сколько раз она была запущена.
Обратите внимание, что если остановленная служба все еще имеет объекты ServiceConnection, связанные с ней с помощью набора BIND_AUTO_CREATE, она не будет уничтожена, пока не будут удалены все эти привязки. Более подробную информацию о жизненном цикле службы см. В документации по сервису.
Эта функция вызовет исключение SecurityException, если у вас нет разрешения на остановку данной службы.
Надеюсь, это поможет ..