Junior
45
questionbank

Что вы можете рассказать о жизненном цикле Activity в Android?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Жизненный цикл Activity — это набор состояний и переходов между ними, через которые проходит каждый экземпляр Activity с момента создания до уничтожения. Он определяется набором callback-методов.

Основные callback-методы жизненного цикла:

  • onCreate(): Вызывается при первом создании Activity. Здесь происходит инициализация UI, привязка данных и другие одноразовые действия.
  • onStart(): Вызывается, когда Activity становится видимой для пользователя, но еще не получила фокус.
  • onResume(): Вызывается, когда Activity получает фокус и становится активной. Здесь обычно начинаются анимации и другие интерактивные действия.
  • onPause(): Вызывается, когда Activity теряет фокус, но еще видна (например, полупрозрачное диалоговое окно поверх). Здесь следует остановить ресурсоемкие операции.
  • onStop(): Вызывается, когда Activity больше не видна пользователю. Здесь сохраняются не сохраненные данные и освобождаются ресурсы, которые больше не нужны.
  • onDestroy(): Вызывается перед тем, как Activity будет уничтожена. Здесь освобождаются все оставшиеся ресурсы.
  • onRestart(): Вызывается после onStop() при повторном отображении Activity. За ним следует onStart().

Графически жизненный цикл можно представить так:

Created -> Started -> Resumed -> Paused -> Stopped -> Destroyed

Также существуют переходы:

  • Created -> Started (после onStart())
  • Started -> Resumed (после onResume())
  • Resumed -> Paused (когда теряет фокус)
  • Paused -> Resumed (когда получает фокус обратно)
  • Paused -> Stopped (когда полностью скрывается)
  • Stopped -> Destroyed (при завершении активности)
  • Stopped -> Restarted -> Started (после onRestart())

Важно правильно управлять состоянием Activity в этих callback-методах, чтобы избежать утечек памяти и обеспечить корректное поведение приложения при изменении конфигурации или переключении между Activity. Для сохранения состояния используется onSaveInstanceState() (перед onStop()) и восстановление происходит в onCreate() или onRestoreInstanceState() (после onStart()).

Пример использования onSaveInstanceState():

kotlin