Что находится внутри ActivityThread, позволяющее жить приложению вечно

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

Ответ

ActivityThread содержит Looper в основном потоке (UI-потоке), который постоянно обрабатывает сообщения из MessageQueue. Это бесконечный цикл (Looper.loop()), который ждет новые задачи (например, обновление UI, обработку кликов и т.д.).

Пока есть сообщения в очереди и Lopper не остановлен (quit()), приложение продолжает работать.

Пример кода:

// Внутри ActivityThread.main()
Looper.prepareMainLooper()  
Looper.loop() // Бесконечный цикл

Если Looper завершится (например, при падении главного потока), приложение упадет с ANR.