Что будет если вставить в середине фрагмента цикл от 1 до 1 млн

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

Ответ

Вставка цикла от 1 до 1 млн в середине фрагмента может привести к:

  1. Блокировке UI потока, если выполняется в основном потоке (ANR при >5 сек)
  2. Увеличению времени выполнения кода
  3. Повышению потребления CPU

Пример (плохая практика):

fun processData() {
    // До цикла
    for (i in 1..1_000_000) {
        heavyCalculation(i)
    }
    // После цикла - выполнится с задержкой
}

Решение: вынести в фоновый поток:

lifecycleScope.launch(Dispatchers.Default) {
    for (i in 1..1_000_000) {
        heavyCalculation(i)
    }
    withContext(Dispatchers.Main) {
        // Обновление UI
    }
}