Similar presentations:
Сервисы в Android
1. Сервисы в Android
Санкт-Петербург, 20162.
ServiceСервис (служба) - один из четырех компонентов Android приложениях,
предназначенных для выполнения операции в фоновом режиме.
Activity
ContentProvider
BroadcastReceiver
Service
3.
Создание сервиса:4.
Создание сервиса:5.
Реализация сервиса:1.
2.*
*объявление службы в AndroidManifest.xml
6.
Методы жизненного цикла:• onCreate()
• onStartCommand()
• onDestroy()
7.
Жизненный цикл служб8.
Условно есть два вида взаимодействия с сервисом:● startService()
● bindService()
Service
Activity 1
Service
Activity 2
Activity 3
9.
Внимание!● Служба работает в основном потоке ведущего процесса —
служба не создает своего потока и не выполняется в отдельном
процессе (если вы не указали иное). Это означает, что если ваша
служба собирается выполнять любую работу с высокой нагрузкой
ЦП или блокирующие операции (например, воспроизведение MP3
или сетевые операции), вы должны создать в службе новый поток
для выполнения этой работы. Используя отдельный поток, вы
снижаете риск возникновения ошибок «Приложение не отвечает»,
и основной поток приложения может отрабатывать
взаимодействие пользователя с вашими операциями
10.
IntentServicestartService()
Это подкласс обычного Service.
onCreate()
-Асинхронность
-Остановка сервиса после выполнения.
onHandleIntent()
вызывается в отдельном потоке
завершится автоматически
onDestroy()
11.
Запуск службы• Пример для явного вызова службы с именем HelloService:
• Пример для неявного вызова службы с именем MyService:
12.
Уничтожение процессовпроцессы уничтожаются в особом приоритете.
startForeground (int id, Notification notification).
stopForeground (boolean removeNotification).
Activity
уничтожаются первыми
Service
Foreground
Service
верояность уничтожения
стремится к 0
13.
BroadcastReceiverШироковещательные сообщения
Приёмник широковещательных сообщений — это компонент для получения внешних событий и
реакции на них.
-BroadcastReceiver базовый класс для всех приемников сообщений.
-Инициализировать передачи могут другие приложения или службы
BroadcastReceiver 1
sendBroadcast()
sender
OS
BroadcastReceiver 2
BroadcastReceiver N
14.
Что важно понять●сервис - не отдельный процесс.
●сервис выполняется в главном потоке приложения.
●сервис помогает сообщить системе, что приложение
желает совершать операции в фоновом режиме.