Где и как работает Service?
Несмотря на то, что сервисы предназначены для выполнения фоновых операций, они не работают в фоновом потоке. Не стоит путать фоновую операцию с фоновым потоком. Сервисы предназначены для того, чтобы выполнять какую-либо операцию даже, когда приложение не запущено и пользователь с ним не взаимодействует.
Так как сервисы работают в UI потоке, то, для выполнения блокирующих потоков, либо тяжелых операций, в них необходимо запускать новый поток в котором уже и будут выполняться данные операции. Также можно использовать JobIntentService, это вид сервиса, который по умолчанию работает в фоновом потоке.
Бесплатные Telegram-боты для обучения
Практика с проверкой кода и помощью ИИ-ментора
AndroidSprint AI Mentor
Проверяет Pull Request'ы в GitHub, проводит тестовые собеседования с голосом и таймером, помогает разбираться с кодом 24/7
Попробовать ИИ-ментора →KotlinSprint Bot
22 урока Kotlin, 220 тестов, 120 практических задач с код-ревью
Начать обучение Kotlin →