У всего есть жизненный цикл. Вы должны верить, что это изменится. - Лес Векснер

Деятельность является основой большинства работ по разработке Android, а ее жизненный цикл - это то, с чем разработчик Android сталкивается каждый день своей жизни. Знание и хорошее их понимание определенно поможет решить многие проблемы, с которыми сталкивается разработчик Android. В этом сообщении блога дается краткое введение о том, что такое действие и какой жизненный цикл он проходит.

МЕРОПРИЯТИЯ

Прежде чем мы приступим к пониманию того, что и как функционирует жизненный цикл активности Android, мы должны сначала узнать, что такое действие. Activity на самом деле является классом и является фундаментальным компонентом приложения Android, поскольку код инициируется в экземпляре класса Activity путем вызова методов обратного вызова, о которых мы вскоре поговорим. Различные методы обратного вызова соответствуют различным этапам жизненного цикла деятельности. Таким образом, действия служат точкой входа для пользователя для взаимодействия с приложением, поскольку каждое из них в основном представляет собой экран приложения. Таким образом, может существовать несколько действий приложения, которые вместе формируют пользовательский интерфейс приложения. Существует основное действие, которое запускает первый экран приложения, а затем все действия, которые на самом деле слабо связаны, взаимодействуют друг с другом, а также с действиями других приложений, чтобы предоставить пользователю полезный опыт.

ЖИЗНЕННЫЙ ЦИКЛ ДЕЯТЕЛЬНОСТИ

Теперь давайте сосредоточимся на том, о чем идет речь в этом блоге, - на жизненном цикле активности. Как у каждого процесса / продукта есть свой жизненный цикл, так и у деятельности. Он иллюстрирует различные состояния, через которые проходит экземпляр действия при запуске приложения. Различные обратные вызовы, в основном onCreate (), onStart (), onResume (), onPause (), onStop () и onDestroy () информируют действие об изменении его состояния. Эти методы обратного вызова также можно использовать для определения того, как действие должно вести себя при изменении состояния действия, например, когда пользователь покидает его. Это помогает повысить надежность и производительность приложения, и, в конечном итоге, уменьшить количество сбоев, от которых приложение может пострадать. Следующий рисунок полностью иллюстрирует весь жизненный цикл и, следовательно, состояния, через которые проходит деятельность.

Теперь, в зависимости от сложности приложения и активности, разработчик может решить, какие обратные вызовы необходимо реализовать. В следующем разделе кратко описаны различные методы обратного вызова.

СПОСОБЫ ОБРАТНОГО СВЯЗИ

onCreate ()

Он вызывается, когда действие создается впервые и оно переходит в состояние Создано. Здесь должны быть выполнены основные операции, которые необходимо выполнять только один раз за всю жизнь. Он также получает объект Bundle, который содержит ранее сохраненное состояние действия, если оно существует. Здесь также можно объявить файл макета для действия, поскольку это то, что требуется сразу после создания действия и необходимо связать с ним только один раз на протяжении всей его жизни. Это один из обратных вызовов, который необходимо реализовать в любом случае. Когда этот метод завершает выполнение, действие переходит в состояние Начато, за которым следует состояние Возобновлено, а также onStart () и onResume ( ) обратные вызовы вызываются в быстрой последовательности соответственно.

onStart ()

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

onResume ()

Это вызывается, когда приложение выходит на передний план, и пользователь может начать взаимодействие с приложением. Этот метод вызывается либо при первом запуске действия, либо при возобновлении его функционирования, поэтому все необходимые операции, такие как инициализация и получение контроля над необходимыми ресурсами, должны выполняться во время этого обратного вызова. Это также один из обратных вызовов, который должен быть реализован для правильного функционирования приложения. Состояние действия остается неизменным до тех пор, пока ничего не происходит, чтобы отвлечь фокус от приложения, например переключение между приложениями, ответ на звонки и т. Д. Каждый раз, когда происходит такое событие, действие переходит в Приостановлено state и вызывается обратный вызов onPause ().

onPause ()

Это вызывается, когда пользователь покидает действие и, следовательно, приложение, но последнее все еще отображается для пользователя, например, когда открывается диалоговое окно, а приложение все еще частично видно. Здесь экземпляр действия сохраняется в памяти для легкого возобновления и во избежание повторной инициализации компонентов. Здесь высвобождаются различные ресурсы, которые пользователю не требуются в то время. Выполнение этого метода очень короткое, поэтому операции с большой нагрузкой, такие как операции сохранения и т. Д., Не должны выполняться во время этого метода, так как это может привести к неполному выполнению таких операций. Действие остается в состоянии Приостановлено до тех пор, пока оно не возобновится, что вызывает обратный вызов onResume () , или станет полностью невидимым для пользователя, который вызывает обратный вызов onStop ().

onStop ()

Это вызывается, когда действие больше не отображается для пользователя и перешло в состояние Остановлено. Здесь освобождаются все ресурсы, в которых приложение не нуждается, а также ресурсы, которые могут вызвать утечку памяти. Это также важно, потому что система может убить процесс, на котором размещено приложение, без вызова обратного вызова onDestroy (), который фактически позаботится о выводе из эксплуатации всех ресурсов. Это также метод, при котором должны выполняться все операции с высокой нагрузкой на ЦП. Здесь также экземпляр действия сохраняется в памяти для облегчения перезапуска и во избежание повторной инициализации компонентов. Даже если система уничтожает процесс во время его остановки, система сохраняет состояние объектов View в объекте Bundle и восстанавливает их позже, когда это необходимо. Находясь в этом состоянии, действие либо перезапускается с помощью обратного вызова onRestart (), либо завершается вызовом обратного вызова onDestroy ().

onDestroy ()

Он вызывается перед уничтожением действия и является последним вызовом, который получит действие. Это может быть вызвано либо из-за вызова finish (), либо из-за того, что система временно уничтожает процесс, в котором выполняется действие, для экономии памяти. Этот обратный вызов освобождает все ресурсы, которые еще не были освобождены предыдущими обратными вызовами, такими как onPause () или onStop ().

ВЗАИМОДЕЙСТВИЕ МЕЖДУ ДЕЯТЕЛЬНОСТЬЮ

Когда одна деятельность начинается с другой, оба переживают переходы в своих жизненных циклах. Первый переходит в состояние Приостановлено или Остановлено, а другой становится Создано. Первое действие не останавливается полностью до того, как будет создано второе. Последовательность обратных вызовов жизненного цикла, которые здесь вызываются, вполне предсказуема, и, следовательно, такими переходами легко управлять. Порядок действий:

  • Первое действие вызывает onPause ().
  • Второй вызывает последовательно onCreate (), onStart () и onResume ().
  • Наконец, первый вызывает onStop (), если он больше не виден пользователю.

Это действительно простые концепции, которые следует учитывать при создании приложения для Android, но они действительно важны, и именно это отличает отличное приложение от хорошего. Я не говорю вам, что это будет легко, но оно того стоит. И всегда помни,

Практика - лучший из всех наставников - Публилиус Сирус