Другое

Activity: определение и его жизненный цикл в Android

Lorem ipsum dolor

Что такое жизненный цикл Activity? Для того чтобы попытаться ответить на этот вопрос, необходимо понимать, что такое Activity в Android,тогда ответ на этот вопрос появится сам по себе.

Activity — это фундаментальный компонент каждого Android-приложения. Через этот компонент происходит взаимодействие между пользователем и приложением. При помощи него пользователь телефона может «путешествовать» между окнами приложения или между разными приложениями.

Фактически компонент Activity это окно, которое открывается пользователю при запуске приложения. В этом компоненте создается интерфейс приложения, который виден пользователю со всеми кнопками, меню, формами и др. У одного Android-приложения может быть несколько окон Activity, но обычно реализуют только одно-единственное. При многокомпонентном Activity всегда определяют «главный экран», который запускается при активации приложения; остальные экраны активируются по необходимости. Если провести аналогию с веб-сайтами, тогда можно сказать, что Activity в Андроид-приложениях — это главная страница на веб-сайтах, с которой посетитель сайта начинает знакомиться с ресурсом.

Жизненный цикл Activity

Каждое запущенное Андроид-приложение имеет жизненный цикл, который ему определяет операционная система. При активации приложения оно получает самый высокий приоритет, а операционная система выделяет ему отдельный процесс. Именно поэтому ОС и может определять приоритетность приложений, потому что она контролирует процессы. «Приоритет» приложений означает, что активному приложению предоставляют максимальное количество ресурсов телефона, однако другие приложения также работают. Например, открыв любое приложение на телефоне, всегда можно принять звонок, получить SMS или получить сообщение в мессенджере

Поясняем, при чем здесь жизненный цикл Activity. Activity это «экран взаимодействия» с приложением. Соответственно, если активно приложение, значит, будет активна и Activity; если нет тогда нет. На практике это выглядит так:когда запущено приложение, пользователь видит его Activity. Если запускается новое приложение, тогда его Activity выводится на экран, а старая «скрывается». Когда новая Activity прекращает работу, тогда она удаляется из стека, а старая Activity появляется на экране.

Жизненный цикл Активити связан с рядом событий, которые определяют его длительность.

Жизненный цикл Активити: события

События, влияющие на жизненный цикл Activity:

  1. «onCreate()». Это первое событие, которое активируется при запуске приложения, и с него начинает свой жизненный цикл Активити. Он определяет первоначальную настройку «экрана», например, создает визуальные компоненты интерфейса приложения. После завершения работы этого состояния приложение переходит в следующее.

  2. «onStart()». Во время выполнения этого события приложение готовится показать Activity на экране устройства. После окончания этого события работа приложения переходит к следующему событию.

  3. «onResume()». Это событие, во время которого Activity появляется на экране устройства и пользователь начинает взаимодействовать с интерфейсом приложения. Это «рабочее» состояние Activity, которое останется таким, пока пользователь взаимодействует с приложением и не закрывает его или не переходит в другое приложение.

  4. «onPause()». Это событие включается в том случае, если пользователь открыл другое приложение, не закрывая предыдущее. То есть приложение не закрывается полностью, а лишь приостанавливает свою деятельность, чтобы освободить ресурсы телефона для работы другого приложения. Еще это состояние называют «фоновой» работой приложения. Приложение может оставаться в таком состоянии до тех пор, пока пользователь его не закроет или система сама его не закроет. Система может самостоятельно закрыть приложение в том случае, если им давно не пользовались, а в «фоне» работает слишком большое количество приложений и телефону не хватает ресурсов их поддерживать.

  5. «onStop()». Это событие, при котором Activity и приложение полностью останавливают свою работу и ее вообще не видно на экране. Во время этого события происходит полное высвобождение ресурсов телефона, однако в памяти телефона во время этого события еще остаются настройки интерфейса. То есть, если во время этого события пользователь возобновит работу приложения, тогда на экране Activity отразятся настройки и работа пользователя с интерфейсом. К примеру, пользователь начал заполнять поля формы, но не закончил. Такие моменты пока еще сохраняются памяти. По окончании этого события приложение переходит к следующему.

  6. «onDestroy()». Этим событием приложение завершает собственную деятельность. Оно возникает тогда, когда приложение было закрыто пользователем или операционной системой. Во время этого события высвобождаются все ресурсы системы, которые не были высвобождены в предыдущих этапах. Жизненный цикл Activity на этом этапе заканчивается.

Заключение

В данной статье мы описали, из каких событий может состоять жизненный цикл Activity. При программировании Андроид-приложений важно отслеживать все происходящие события, чтобы правильно управлять работоспособностью приложения и сохраняемыми данными во время наступления разных событий. Такой «контроль» поможет избежать сбоев приложения. Например:

  • пользователю поступил звонок на телефон, или он переключился на другое приложение, а в вашем случился сбой;

  • пользователь не пользуется вашим приложением активно, а оно потребляет много ресурсов устройства;

  • пользователь временно переключился на другое приложение, а по возвращении все, что он делал в вашем приложении, удалилось;

  • пользователь сменил положение экрана, а все, что он делал в вашем приложении, удалилось;

  • и др.

Потенциальных проблем может быть много, поэтому важно понимать, из каких событий состоит жизненный цикл Activity и как ими правильно управлять.

Схожие статьи

Палиндром: определение и применение в разных языках программирования
Другое

Палиндром: определение и применение в разных языках программирования

Docker: что это и зачем нужно, применение и примеры
Другое

Docker: что это и зачем нужно, применение и примеры

DHCP или PPPoE: что лучше и в чем разница, что такое авторизация IpoE
Другое

DHCP или PPPoE: что лучше и в чем разница, что такое авторизация IpoE

Профилирование в программировании: какой профилировщик выбрать
Другое

Профилирование в программировании: какой профилировщик выбрать