Назад к вопросам
Junior
68
questionbank

Какие методы жизненного цикла Activity вы знаете и как они выполняются?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

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

Последовательность выполнения методов при запуске: onCreate() -> onStart() -> onResume().

Последовательность выполнения методов при переходе на задний план (например, при нажатии кнопки Home): onPause() -> onStop().

Последовательность выполнения методов при возвращении из фона: onRestart() -> onStart() -> onResume().

Последовательность выполнения методов при уничтожении Activity: onPause() -> onStop() -> onDestroy().

При повороте экрана Activity уничтожается и создается заново. Последовательность: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). Для сохранения состояния используется onSaveInstanceState() (вызывается до onStop()) и восстановление в onCreate() или onRestoreInstanceState() (вызывается после onStart()).

class MyActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) // Инициализация UI
        // Восстановление состояния из savedInstanceState
    }

    override fun onStart() {
        super.onStart()
        // Activity становится видимой
    }

    override fun onResume() {
        super.onResume()
        // Activity на переднем плане, доступна для взаимодействия
    }

    override fun onPause() {
        super.onPause()
        // Activity переходит на задний план
        // Сохранение быстро восстанавливаемого состояния
    }

    override fun onStop() {
        super.onStop()
        // Activity не видна
        // Освобождение ресурсов
    }

    override fun onDestroy() {
        super.onDestroy()
        // Activity уничтожается
        // Окончательная очистка ресурсов
    }

    override fun onRestart() {
        super.onRestart()
        // Activity возвращается из фона
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        // Сохранение состояния перед уничтожением
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        // Восстановление состояния
    }
}