Сервисы в Android

Содержание

Слайд 2

Service Activity ContentProvider BroadcastReceiver Service Сервис (служба) - один из четырех

Service 

Activity

ContentProvider

BroadcastReceiver

Service

Сервис (служба) - один из четырех компонентов Android приложениях, предназначенных для

выполнения операции в фоновом режиме.
Слайд 3

Создание сервиса:

Создание сервиса: 

Слайд 4

Создание сервиса:

Создание сервиса: 

Слайд 5

Реализация сервиса: 1. 2.* *объявление службы в AndroidManifest.xml

Реализация сервиса: 

1.

2.*

*объявление службы в AndroidManifest.xml

Слайд 6

Методы жизненного цикла: onCreate() onStartCommand() onDestroy()

Методы жизненного цикла:

onCreate()
onStartCommand()
onDestroy()

Слайд 7

Жизненный цикл служб

Жизненный цикл служб

Слайд 8

Условно есть два вида взаимодействия с сервисом: startService() bindService() Service Activity

Условно есть два вида взаимодействия с сервисом:

startService()
bindService()

Service

Activity 1

Activity 3

Activity

2

bindService()

IBinder

startService()

Service

bindService()

IBinder

Слайд 9

Внимание! Служба работает в основном потоке ведущего процесса — служба не

Внимание! 

Служба работает в основном потоке ведущего процесса — служба не создает своего потока

и не выполняется в отдельном процессе (если вы не указали иное). Это означает, что если ваша служба собирается выполнять любую работу с высокой нагрузкой ЦП или блокирующие операции (например, воспроизведение MP3 или сетевые операции), вы должны создать в службе новый поток для выполнения этой работы. Используя отдельный поток, вы снижаете риск возникновения ошибок «Приложение не отвечает», и основной поток приложения может отрабатывать взаимодействие пользователя с вашими операциями
Слайд 10

IntentService Это подкласс обычного Service. Асинхронность Остановка сервиса после выполнения. startService()

IntentService 

Это подкласс обычного Service.
Асинхронность
Остановка сервиса после выполнения.

startService()

onDestroy()

onCreate()

вызывается в отдельном

потоке

завершится автоматически

onHandleIntent()

Слайд 11

Запуск службы Пример для явного вызова службы с именем HelloService: Пример

Запуск службы 

Пример для явного вызова службы с именем HelloService:

Пример для

неявного вызова службы с именем MyService:
Слайд 12

Уничтожение процессов процессы уничтожаются в особом приоритете. startForeground (int id, Notification

Уничтожение процессов 

процессы уничтожаются в особом приоритете.
startForeground (int id, Notification

notification).
stopForeground (boolean removeNotification).

Activity
уничтожаются первыми

Service

Foreground Service
верояность уничтожения стремится к 0

Слайд 13

BroadcastReceiver Широковещательные сообщения Приёмник широковещательных сообщений — это компонент для получения

BroadcastReceiver 
Широковещательные сообщения
Приёмник широковещательных сообщений — это компонент для получения внешних

событий и реакции на них.
BroadcastReceiver базовый класс для всех приемников сообщений.
Инициализировать передачи могут другие приложения или службы

sender

OS

BroadcastReceiver 1

BroadcastReceiver 2

BroadcastReceiver N

sendBroadcast()