Activity 2 войдёт в onCreate и после finish будет уничтожена, обычно без onStart/onResume. Activity 1 при перекрытии непрозрачной Activity 3 приостанавливается и останавливается, Activity 3 доходит до onResume.
Порядок вызова методов жизненного цикла Activity при последовательных переходах
Activity 2 войдёт в onCreate и после finish будет уничтожена, обычно без onStart/onResume. Activity 1 при перекрытии непрозрачной Activity 3 приостанавливается и останавливается, Activity 3 доходит до onResume.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
В сценарии задействованы три Activity. Определите, какие callbacks жизненного цикла будут выполнены у каждой из них при переходах.
// Activity 1 запускает Activity 2
fun onCreate () { // это Activity 2
this.finish()
// открываем Activity 3
}
Ожидаемый результат
- у Activity 1:
onPause,onStop - у Activity 2:
onDestroy - у Activity 3: все методы до
onResumeвключительно
Ответ
Activity 2 войдёт в onCreate и после finish будет уничтожена, обычно без onStart/onResume. Activity 1 при перекрытии непрозрачной Activity 3 приостанавливается и останавливается, Activity 3 доходит до onResume.
finish не является return: оставшийся код onCreate продолжит выполняться и может запустить Activity 3. Для Activity 3 обычная локальная последовательность — onCreate → onStart → onResume. Не выдавайте все callbacks разных Activity за один гарантированный глобальный порядок: он зависит от перехода, режима окна и видимости. Указанное в условии onDestroy для Activity 2 не отменяет уже начатого onCreate.
Источник: developer.android.com.