Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
501 of 502 menu
◀ ▶

Класс NetworkOnMainThreadException

Класс NetworkOnMainThreadException в strict mode останавливает приложение, если на UI thread вызвать блокирующую сеть. Типичный триггер - HttpURLConnection или InputStream.read к интернету прямо в onCreate. Запросы выносят в корутину, worker или LaunchedEffect с IO dispatcher.

Пример

Давайте покажем UI без сетевого вызова в onCreate:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Text(text = "abcde") } } }

Такой экран не трогает сеть на main thread. Если открыть URL синхронно здесь, debug сборка бросит NetworkOnMainThreadException.

Смотрите также

  • класс CalledFromWrongThreadException,
    если View меняют не с UI thread
  • функция LaunchedEffect,
    откуда запускают suspend сеть
  • метод onCreate,
    где нельзя блокировать главный поток
  • функция setContent,
    которую не смешивают с sync HTTP
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить