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

Жизненный цикл Activity в Android — это последовательность состояний, через которые проходит активность от момента ее создания до уничтожения. Управление жизненным циклом позволяет правильно управлять ресурсами и состоянием приложения в зависимости от его видимости и взаимодействия с пользователем. Основные методы жизненного цикла Activity:

  1. onCreate():

    • Вызывается при создании активности. Здесь происходит инициализация компонентов (например, настройка интерфейса через setContentView()), восстановление состояния активности и инициализация необходимых объектов.
    • Этот метод вызывается один раз за жизненный цикл активности.
  2. onStart():

    • Активность становится видимой для пользователя, но еще не доступна для взаимодействия. В этот момент она готовится к показу на экране.
    • Если активность переходит в фоновый режим и потом возвращается, этот метод будет вызван повторно.
  3. onResume():

    • Активность становится доступной для взаимодействия с пользователем, и приложение выходит на передний план. Это состояние считается "активным".
    • Этот метод вызывается после onStart() или после onPause(), если активность возвращается на передний план.
  4. onPause():

    • Активность переходит в приостановленное состояние. Это означает, что приложение все еще видно пользователю, но в фоновом режиме (например, поверх приложения может быть всплывающее окно или другая активность).
    • В этом методе обычно сохраняется минимальное состояние, так как активность может быть вскоре уничтожена. Время, затраченное на выполнение этого метода, должно быть минимальным.
  5. onStop():

    • Активность больше не видна пользователю. Это может произойти, если приложение уходит в фоновый режим или запускается другая активность.
    • Здесь можно освобождать ресурсы, которые не нужны, пока активность не видна.
  6. onRestart():

    • Вызывается, если активность была остановлена (onStop()), а затем вновь становится видимой для пользователя.
    • Это промежуточный метод, который запускается перед onStart().
  7. onDestroy():

    • Вызывается перед уничтожением активности. Это может произойти как при завершении работы приложения, так и при изменении конфигурации устройства (например, поворот экрана).
    • Здесь нужно освобождать оставшиеся ресурсы и выполнять финальные операции.

Пример жизненного цикла:

  • При запуске активности: onCreate()onStart()onResume().
  • При переходе активности на паузу (например, при запуске другой активности): onPause()onStop().
  • При возврате к активности: onRestart()onStart()onResume().
  • При закрытии активности: onPause()onStop()onDestroy().

Жизненный цикл при повороте экрана:

При изменении конфигурации, например при повороте экрана, активность может быть уничтожена и создана заново. Последовательность методов будет такая:

  • Поворот: onPause()onStop()onDestroy()onCreate()onStart()onResume().