Sobes.tech
Junior — Middle

Hoe controleer je of een activiteit in Android door het systeem is gesloten of vernietigd?

sobes.tech AI

Antwoord van AI

Чтобы проверить, что Activity была закрыта или уничтожена системой, можно использовать методы жизненного цикла Activity:

  • onDestroy() вызывается при уничтожении Activity. Если этот метод вызывается, значит Activity завершается.
  • isFinishing() внутри onDestroy() возвращает true, если Activity закрывается явно (например, пользователь нажал назад).
  • Если isFinishing() возвращает false в onDestroy(), значит Activity уничтожается системой (например, из-за нехватки памяти).

Пример проверки в onDestroy():

override fun onDestroy() {
    super.onDestroy()
    if (isFinishing) {
        // Activity закрывается пользователем
    } else {
        // Activity уничтожается системой
    }
}

Также можно отслеживать состояние через onSaveInstanceState() и onRestoreInstanceState(), чтобы понять, была ли Activity пересоздана после уничтожения.