Sobes.tech
Junior — Middle

Какво ще се случи, ако изпълните мрежова заявка в основния поток на програмата?

sobes.tech AI

Отговор от AI

Ако извършите мрежова заявка в основния (UI) поток на Android приложение, това ще доведе до блокиране на интерфейса на потребителя до завършването на заявката. В резултат, приложението ще спре да реагира на действията на потребителя, което може да предизвика ANR (Application Not Responding) – системно предупреждение за замръзване.

Затова мрежовите операции трябва да се изпълняват във фонов поток, например, използвайки AsyncTask, Thread, Coroutine или библиотеки като Retrofit с поддръжка за асинхронност.

Пример с Kotlin Coroutine:

GlobalScope.launch(Dispatchers.Main) {
    val result = withContext(Dispatchers.IO) {
        // мрежова заявка
    }
    // актуализация на UI с резултата
}