В каком Callback нужно закрыть Activity, чтобы пользователь его не увидел

«В каком Callback нужно закрыть Activity, чтобы пользователь его не увидел» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Закрывать Activity лучше в onCreate(), если нужно предотвратить его отображение. Проверяем условия и вызываем finish() до super.onCreate():

override fun onCreate(savedInstanceState: Bundle?) {
    if (shouldNotShowActivity()) {
        finish()
        return
    }
    super.onCreate(savedInstanceState)
    // остальная инициализация
}

Почему onCreate?

  • Вызывается до отрисовки UI
  • Раньше других жизненных циклов (onStart/onResume)
  • Гарантирует, что пользователь не увидит мерцание

Альтернатива - onResume(), но это может вызвать кратковременное отображение.