Сервис

Компонент Service может незаметно выполняться в фоновом режиме без прямого взаимодействия с пользователем. Обычно он используется для частичного снятия чрезмерной нагрузки с других компонентов, когда длительность операций превосходят длительность их существования. Компонент Service может работать в двух режимах: в режиме запускаемой службы (started) и в режиме подключаемой службы (bound):

  • в режиме запускаемой службы - компонент сервисе запускается вызовом метода Context.startService(Intent), с явным или неявным объектом Intent, и завершается вызовом метода Context.stopService(Intent);
  • в режиме подключаемой службы - несколько компонентов могут подключаться к компоненту Service, вызвав метод Context.bindService(Intent, ServiceConnection, int) и передав ему явный или неявный объект Intent. После подключения компонент может взаимодействовать с Service через интерфейс ServiceConnection и в любой момент разорвать установленную связь вызовом метода Context.unbindService(ServiceConnection). Компонент Service автоматически удаляется, когда последний компонент разорвёт связь с ним.
  • Это компонент приложения
  • Его нужно прописывать в манифесте
  • Позволяет приложению осуществлять действия без взаимодействия с пользователем, в т.ч. в фоне
  • Сервис по умолчанию запускается в основном потоке хост процесса (того кто его породил)
  • Сервис ЭТО НЕ ПРОЦЕСС он запускается в рамках процесса хоста (есть исключения)
  • Сервис ЭТО НЕ ПОТОК он не создаёт отдельный поток

Типы сервисов

  • Started (запущенные) - сервисы, которые запускаются любым другим компонентом приложения и работают пока не остановят сами себя или кто-то не остановит их.
  • Bound (связанные) - сервис, который выступает в роли сервера в клиент-серверной архитектуре. Такой сервис при первом соединении (запросе) от другого компоента приложения. Сервис останавливается, когда отсоединится последний клиент.
  • Сервис может быть одновременно и Started и Bounded. Такой сервис способен "жить вечно" и обслуживать запросы клиентов.

Далее

Вернуться