Ответ
Закрывать Activity лучше в onCreate(), если нужно предотвратить его отображение. Проверяем условия и вызываем finish() до super.onCreate():
override fun onCreate(savedInstanceState: Bundle?) {
if (shouldNotShowActivity()) {
finish()
return
}
super.onCreate(savedInstanceState)
// остальная инициализация
}
Почему onCreate?
- Вызывается до отрисовки UI
- Раньше других жизненных циклов (onStart/onResume)
- Гарантирует, что пользователь не увидит мерцание
Альтернатива - onResume(), но это может вызвать кратковременное отображение.