Вместо фоновой службы используйте WorkManager: https://developer.android.com/topic/libraries/architecture/workmanager
Позволяет планировать фоновые задачи через определенные промежутки времени, для определенных сетевых подключений (например, только для Wi-Fi) и т. Д. Мощные вещи.
Примериспользование (скопировано со связанной страницы), когда вы хотите выполнять какую-либо работу с почасовым интервалом во время зарядки устройства:
val constraints = Constraints.Builder()
.setRequiresCharging(true)
.build()
val saveRequest =
PeriodicWorkRequestBuilder<SaveImageToFileWorker>(1, TimeUnit.HOURS)
.setConstraints(constraints)
.build()
WorkManager.getInstance(myContext)
.enqueue(saveRequest)