Выбор ответа Junior Многопоточность и WorkManager обновлено
В каком потоке работает Service
Вопрос
В каком потоке выполняется onStartCommand обычного Service?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: В главном потоке приложения. Service это компонент без UI, но не поток: его колбэки вызываются на главном потоке.
Варианты ответа
- В отдельном фоновом потоке, созданном системой
- В потоке
Dispatchers.IO - В главном потоке приложенияправильный ответ
- В отдельном процессе
Разбор
Service это компонент без UI, но не поток: его колбэки вызываются на главном потоке. Тяжёлую работу внутри нужно переносить в корутины или потоки, иначе будет ANR. Отдельный процесс появляется, только если указать android:process в манифесте. Устаревший IntentService создавал рабочий поток сам.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.