🤳 Блог Android новостей, посвященный советам экспертов, новостям, обзорам, телефонам Android, приложениям, инструкциям, планшетам и мобильным телефонам.

Объяснение жизненного цикла активности Android – введение в анатомию приложения

435

Когда вы впервые загружаете новый проект Android Studio, вас встречает не пустая страница, а целый набор так называемого «шаблонного» кода. Этот код необходим для подавляющего большинства приложений и для запуска и запуска этого примера «Hello World ».

Но что все это значит? Что такое onCreate()?

Если вы когда-либо пробовали реконструировать проект или следовать инструкциям, вы, вероятно, заметили, что одни и те же строки появляются снова и снова: такие вещи, как onPause (). Что все это значит?

Объяснение жизненного цикла активности Android - введение в анатомию приложения

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

Жизненный цикл активности Android

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

Они обрабатываются как «события» внутри вашего кода, когда пользователь каким-либо образом изменяет состояние вашего приложения: запускает его, приостанавливает, закрывает и т.д. События запускаются в методах (последовательности инструкций в фигурных скобках), и это означает, что мы можем перехватить эти методы и решить, что мы хотим, чтобы происходило на каждом этапе. Отсюда и происходит строка @ Override : это означает, что мы используем не новый метод, а метод, который всегда выполнялся бы (обычно наследуется от суперкласса, что будет объяснено ниже), и мы просто прыгая и добавляя некоторые настройки.

Для типичного занятия ключевые события включают:

  • OnCreate
  • OnStart
  • onResume
  • OnPause
  • OnStop
  • OnDestroy

onCreate () вызывается при первом запуске действия. Приложения используют o nResume (), когда возвращаются в фокус после другого события. Приложения приостанавливаются (с помощью onPause ()) только в нескольких конкретных сценариях, например, во время многоэкранных операций или при использовании прозрачных приложений поверх. Приложение вызывает o nStop (), если оно отправляется в фоновый режим при открытии другого приложения. Здесь мы можем остановить любые голодные по памяти процессы, которые не нужны, пока приложение не отображается. Когда пользователь полностью закрывает приложение или когда система выключает его для экономии памяти, он вызывает onDestroy (). Изменение конфигурации приложения – например, его вращение – также вызывает onDestroy (), за которым немедленно следует вызовonCreate () еще раз, чтобы создать новое действие. Вы можете различать эти две функции с помощью isFinishing.

Строка super.onSaveInstanceState (); сообщает Android, что необходимо сохранить «состояние» всех наших представлений, чтобы все текстовые поля по-прежнему содержали один и тот же текст, а любые элементы, которые перемещались по странице, по-прежнему оставались там, где их последний раз оставил наш пользователь, если приложение будет уничтожено путем вращения. Если вы не укажете эту строку, могут произойти некоторые странные вещи. Здесь слово super говорит нам, что мы вызываем метод из суперкласса – в данном случае AppCompatActivity.

Этот рисунок от Google, показывающий жизненный цикл активности Android, может помочь:

Объяснение жизненного цикла активности Android - введение в анатомию приложения

Обратите внимание, как мы также переопределяем метод onClick, принадлежащий Button. Кнопка обрабатывается отдельным классом (следовательно, нам необходимо импортировать ее), и мы снова взламываем код, чтобы определить, что происходит, когда кнопка нажимается сами!

Наследование и AppCompatActivity

Это следующая строка, которую мы рассмотрим под микроскопом:

public class MainActivity extends AppCompatActivity {

Эта строка по сути определяет наш код как класс. Это то, что реализует жизненный цикл активности Android. Класс – это модуль кода, который работает где-то еще и имеет определенные свойства, которые мы обсудим в следующем посте (технически он описывает объект). Поскольку класс описан как открытый, теоретически мы могли бы получить доступ к его методам и из других классов.

Объяснение жизненного цикла активности Android - введение в анатомию приложения

Следующая часть строки, расширяет AppCompatActivity, означает, что мы наследуем свойства от другого класса. Это дает нам доступ к дополнительным методам, которые определяют поведение нашей деятельности. Такие методы, как onCreate и findViewByID. Эта строка превращает наш код Java в действие Android! Мы «наследуем» методы, заставляющие код вести себя соответствующим образом, что позволяет нам обращаться к ним в нашем коде с помощью @Override, как вы видели ранее. Все начинает обретать смысл! Может быть. Возможно нет.

Технически наш класс деятельности на самом деле является «подклассом» AppCompatActivity. Именно так мы на самом деле хотим обрабатывать большинство классов, которые мы собираемся использовать в качестве действий, поскольку это позволит им вести себя так, как предполагается, действиям с функциональностью, ожидаемой от приложения. Однако есть исключения, например, когда вы можете захотеть расширить Activity вместо AppCompatActivity. Это удаляет такие функции, как панель действий, которые могут быть полезны при разработке игры. Он по-прежнему строит деятельность, только немного другого рода. Только когда вы начнете создавать действия, которые просто обрабатывают данные или выполняют задачи в фоновом режиме, вы начнете использовать другие типы.

Большинство действий, которые вы создаете, будут содержать эти операторы и переопределить те же методы. Каждый новый экран, который вы создаете, автоматически заполняется этим кодом, и именно об этом говорит нам весь этот шаблонный код.

Резюме

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

Объяснение жизненного цикла активности Android - введение в анатомию приложения

Чтобы лучше понять это, следите за обновлениями в следующем посте, в котором я буду смотреть, как запускать новые действия из вашего приложения. Здесь мы увидим, как настроить новое действие с наследованием, и продемонстрируем, как приложение будет обрабатывать несколько стилей жизни Android.

Связанный

Источник записи: https://www.androidauthority.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее