Содержание
- 2. Содержание Определения Многопоточность и службы Соотношения методов службы Объявление службы в манифесте Методы обратного вызова Выполнение
- 3. Службы определение Service является компонентом приложения, который может выполнять длительные операции в фоновом режиме и не
- 4. 1. Запущенная Служба является «запущенной», когда компонент приложения (например, операция) запускает ее вызовом startService(). После запуска
- 5. 2. Привязанная Служба является «привязанной», когда компонент приложения привязывается к ней вызовом bindService(). Привязанная служба предлагает
- 6. Служба может работать обеими способами — она может быть запущенной (и работать в течение неограниченного времени)
- 7. Многопоточность и службы Служба работает в основном потоке ведущего процесса — служба не создает своего потока
- 8. Что лучше использовать — службу или поток? Служба — это просто компонент, который может выполняться в
- 9. Создать службу Чтобы создать службу, необходимо создать подкласс класса Service (или одного из существующих его подклассов).
- 10. onStartCommand() Система вызывает этот метод, когда другой компонент, например, операция, запрашивает запуск этой службы, вызывая startService().
- 11. onBind() Система вызывает этот метод, когда другой компонент хочет выполнить привязку к службе (например, для выполнения
- 12. onCreate()&onDestroy() onCreate() Система вызывает этот метод при первом создании службы для выполнения однократных процедур настройки (перед
- 13. Соотношения методов службы Если компонент запускает службу посредством вызова startService() (что приводит к вызову onStartCommand()), то
- 14. Уничтожение службы Система Android будет принудительно останавливать службу только в том случае, когда не хватает памяти,
- 15. Объявление службы в манифесте Все службы, как и операции (и другие компоненты), должны быть объявлены в
- 16. Синтаксис объявления service в манифесте . . . Имеются другие атрибуты, которые можно включить в элемент
- 17. Обеспечение безопасности Для обеспечения безопасности приложения всегда используйте явное намерение при запуске или привязке Service и
- 18. Создание запущенной службы Запущенная служба — это служба, которую запускает другой компонент вызовом startService(), что приводит
- 19. Activity может запустить службу методом startService() Компонент приложения, например, операция, может запустить службу, вызвав метод startService()
- 20. Имеется два класса, которые вы можете наследовать для создания запущенной службы: 1. Service Это базовый класс
- 21. 2. IntentService Это подкласс класса Service, который использует рабочий поток для обработки всех запросов запуска поочередно.
- 22. Наследование класса IntentService Так как большинству запущенных приложений не требуется обрабатывать несколько запросов одновременно, (что может
- 23. Пример реализации класса IntentService: Достаточно реализовать метод onHandleIntent() для выполнения работы, предоставленной клиентом. (Хотя, кроме того,
- 24. Методы обратного вызова Если вы решили переопределить также и другие методы обратного вызова, такие как onCreate(),
- 25. Наследование класса Service Использование класса IntentService значительно упрощает реализацию запущенной службы. Однако, если необходимо, чтобы ваша
- 26. public class HelloService extends Service public class HelloService extends Service { private Looper mServiceLooper; private ServiceHandler
- 27. public void onCreate() @Override public void onCreate() { // Start up the thread running the service.
- 28. onStartCommand …… @Override public int onStartCommand(Intent intent, int flags, int startId) { Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();
- 29. Комментарий Однако, так как вы обрабатываете каждый вызов onStartCommand() самостоятельно, вы можете выполнять несколько запросов одновременно.
- 30. Запуск службы Можно запустить службу из операции или другого компонента приложения, передав объект Intent(указывающий службу, которую
- 31. Остановка службы Запущенная служба должна управлять своим жизненным циклом. То есть, система не останавливает и не
- 32. Создание привязанной службы Привязанная служба — это служба, которая допускает привязку к ней компонентов приложения посредством
- 33. Отправка уведомлений пользователю После запуска служба может уведомлять пользователя о событиях, используя Всплывающие уведомления или Уведомления
- 34. Запуск службы на переднем плане Служба переднего плана — это служба, о которой пользователь активно осведомлен,
- 35. Выполнение службы на переднем плане Для запроса на выполнение вашей службы на переднем плане вызовите метод
- 36. Управление жизненным циклом службы Жизненный цикл службы от создания до уничтожения может следовать двум разным путям:
- 37. Реализация обратных вызовов жизненного цикла Подобно операции, служба содержит методы обратного вызова жизненного цикла, которые можно
- 38. Реализация обратных вызовов жизненного цикла @Override public IBinder onBind(Intent intent) { // A client is binding
- 40. Два вложенных цикла в жизненном цикле службы: Весь жизненный цикл службы происходит между вызовом метода onCreate()
- 41. Активный жизненный цикл Активный жизненный цикл службы начинается с вызова метода onStartCommand() или onBind(). Каждый метод
- 43. Скачать презентацию