Методы жизненного цикла started сервиса:
onCreate() – вызывается, когда сервис создается системой. Для создания started сервиса используется метод startService().
onStartCommand() – вызывается, когда сервис переходит в активное состояние. Код, который выполняет сервис, должен быть написан в этом методе.
onDestroy() – вызывается, когда сервис уничтожается системой. Это происходит после вызова stopSelf() или stopService(). Также система может убить процесс с фоновым сервисом когда не хватает ресурсов или, начиная с Android 8.0, для ограничения фоновых работы.
Методы жизненного цикла bound сервиса:
onCreate()
– вызывается когда первый клиент присоединяется к сервису вызовом bindService() с флагом BIND_AUTO_CREATE.onBind() – вызывается системой, когда первый клиент присоединяется к сервису вызовом метода
bindService()
. После вызова этого метода bound сервис переходит в активное состояние.onUnbind() – вызывается системой, когда все клиенты отсоединились от сервиса вызовом метода unbindService().
onDestroy()
– вызывается после onUnbind()
, перед тем как система уничтожит сервис.Сервис может быть одновременно started и bound. В этом случае вызываются все методы жизненного цикла обоих типов сервисов.
onDestroy()
у такого сервиса вызывается когда все клиенты отсоединены и сервис остановлен вызовом метода stopSelf()
или stopService()
.Если же все клиенты отсоединяются, но сервис не остановлен, то вызывается метод
onUnbind()
и сервис продолжает работать.onUnbind()
возвращает boolean
. Если вернуть true
, то при присоединении первого клиента после onUnbind()
вызывается метод onRebind(), иначе вызывается onBind()
.Документация жизненного цикла сервиса.
Документация жизненного цикла bound сервиса.