Конспект лекционных занятий



Pdf көрінісі
бет21/67
Дата26.09.2023
өлшемі2.41 Mb.
#478672
түріКонспект
1   ...   17   18   19   20   21   22   23   24   ...   67
kt 1

Выполняется (running). Активность находится на переднем 
плане и удерживает фокус ввода. Если внимательно рассмотреть рис. 
3.4 можно заметить, что в это состояние активность попадает после вызова 


30 
метода onResume(). Пока активность находится в этом состоянии ее процесс 
не может быть уничтожен системой. 

Приостановлена. Активность частично видима, однако фокус 
ввода потерян. В это состояние активность попадает после вызова 
метода onPause() ( рис. 3.4). В этом состоянии активность поддерживается в 
"боевой готовности", т.е. в любой момент может получить фокус ввода и 
стать активной. Однако в этом состоянии процесс активности может быть 
уничтожен системой, в случае экстремальной нехватки памяти. 

Остановлена. Активность полностью невидима. В это состояние 
активность попадает после вызова метода onStop()( рис. 3.4). В этом 
состоянии активность может быть "вызвана к жизни", она сохраняет все 
состояния и необходимую для восстановления информацию, однако процесс 
активности может быть уничтожен, если память понадобится для других 
целей. 
2.4.2 Сервисы (Services) 
Сервис (Service) является компонентом приложения, предназначенным 
для выполнения длительных операций в фоновом режиме. Существует два 
способа существования сервисов: 

первый заключается в том, что сервис запущен (started) и работает 
самостоятельно в фоновом режиме, так он может работать неопределенно 
долго, пока не выполнит свою задачу; 

второй заключается в том, что сервис привязан (bound) к 
некоторому компоненту или нескольким компонентам, в этом случае сервис 
предлагает интерфейс для взаимодействия с компонентом и работает пока 
привязан хотя бы к одному компоненту, как только связь со всеми 
компонентами разрывается сервис завершает свою работу. 
Для создания сервиса необходимо создать класс-наследник класса Service 
напрямую или через любого его потомка. При этом в реализации класса 
необходимо переопределить (т. е. написать свою реализацию) некоторые 
методы, управляющие ключевыми аспектами жизненного цикла сервиса и 
обеспечивающие механизм связывания компонентов с сервисом, в 
соответствующем случае. Рассмотрим наиболее важные методы требующие 
реализации при создании сервиса. 
onStartCommand() - 
метод, вызываемый системой, когда некоторый 
компонент, 
например 
активность, 
вызывает 
метод startService(). В этом случае сервис запускается и 
может работать в фоновом режиме неопределенно долго, 
поэтому необходимо позаботиться об остановке сервиса, 
когда он выполнит свою работу. Для остановки сервиса 
используется метод stopSelf() в случае, когда сервис сам 
прекращает свою работу, илиstopService() в случае, когда 
работу сервиса прекращает некоторый компонент. Нет 
необходимости 
писать 
реализацию 


31 
методаonStartCommand(), 
если 
не 
предполагается 
самостоятельной работы сервиса (т. е. он будет работать 
только в связке с некоторыми компонентами). 
onBind() 

метод, вызываемый системой, когда некоторый 
компонент желает привязать к себе сервис и вызывает 
метод bindService(). Этот метод должен возвращать 
реализацию интерфейса IBinder, которая может быть 
использована компонентом-клиентом для взаимодействия 
с сервисом. Метод onBind() необходимо реализовать в 
любом случае, но, если не предполагается связывания 
сервиса с какими-либо компонентами, возвращаемое 
значение должно быть равным null. 
Необходимо отметить, что сервис может быть запущен как 
самостоятельная единица, а в последствии может быть привязан к некоторым 
компонентам. В этом случае в сервисе должны быть обязательно реализованы 
оба метода onStartCommand() и onBind(). 
onCre
ate() 
- метод, вызываемый системой, при первом обращении к 
сервису для выполнения первоначальных настроек. Этот метод 
вызывается до вызова методов onStartCommand() и/или onBind(). 
onDes
troy() 
- метод, вызываемый системой, когда сервис либо выполнил 
все действия, для которых создавался, либо больше не связан ни с 
одним компонентом, т. е. его услуги больше не требуются. В 
реализации 
этого 
метода 
необходимо 
предусмотреть 
освобождение 
всех 
ресурсов, 
таких 
как 
потоки, 
зарегистрированные слушатели, приемники и т. д. Вызов этого 
метода является последними вызовом, который может получить 
сервис. 


32 


Достарыңызбен бөлісу:
1   ...   17   18   19   20   21   22   23   24   ...   67




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет