Ответ
ActivityManager взаимодействует с WindowManager и другими системными сервисами для отслеживания состояния приложения. Когда Activity становится видимой и получает фокус, система через ActivityThread вызывает handleResumeActivity(), который в свою очередь триггерит onResume().
Ключевые моменты:
- Видимость – Activity должна быть в стеке и не перекрыта другими окнами
- Фокус – Должна получить возможность обрабатывать пользовательский ввод
- Жизненный цикл – Предыдущее состояние было
onStart()илиonPause()
Пример вызова:
// Внутри ActivityThread
fun handleResumeActivity(token: IBinder, finished: Boolean, isForward: Boolean) {
val r = performResumeActivity(token, finished) // вызывает onResume()
if (r.window != null) {
wm.addView(decor, l) // Добавляет в WindowManager
}
}