Базовым классом для службы является класс Service. На рис. 4.2 изображен жизненный цикл службы.
Рис. 4.2. Жизненный цикл службы
Служба может принимать две формы:
- • «запущенная» (Started) – если какой-либо компонент приложения осуществляет вызов метода startService(). После запуска служба может работать независимо от других компонентов, в том числе и запустившего службу компонента;
• «связанная» (Bound) – в случае вызова из другого компонента приложения метода bindService(). В данном случае служба предоставляет интерфейс для взаимодействия с ней, что позволяет посылать ей запросы, получать результаты и т.п. Одновременно со службой может быть связано несколько компонентов, однако, если каждый из них вызовет unbindService(), то работа службы будет завершена.