START_NOT_STICKY
Если система завершает работу службы после возврата onStartCommand (), не создавайте заново службу, если нет ожидающих намерений доставки.Это самый безопасный вариант, позволяющий избежать запуска службы, когда в этом нет необходимости и когда ваше приложение может просто перезапустить незавершенные задания.
START_STICKY
Если система завершает работу службы после возврата из функции onStartCommand (), заново создайте службу и вызовите ее.onStartCommand (), но не пересылать последнее намерение.Вместо этого система вызывает onStartCommand () с нулевым намерением, если только нет ожидающих намерений запустить службу.В этом случае эти намерения доставлены.Это подходит для медиаплееров (или аналогичных служб), которые не выполняют команды, но работают неопределенно долго и ожидают задания.
START_REDELIVER_INTENT
Если система завершает работу службы после возврата onStartCommand (), заново создайте службуи вызовите onStartCommand () с последним намерением, которое было доставлено в службу.Любые ожидающие намерения доставляются по очереди.Это подходит для служб, которые активно выполняют работу, которая должна быть немедленно возобновлена, например, для загрузки файла.
Вы можете использовать START_NOT_STICKY
, но тогда вам придется вручную обработать остановку службы.Также помните, что когда вы вызываете службу из действия, onCreate()
не всегда вызывается.Только когда вы вызываете службу из неактивной деятельности, она вызывается, иначе вызывается onStartCommand()
.
Я думаю, что эта библиотека имеет лучшую реализацию сервиса для Android.Проверьте это MockGeoFix .