Согласно Android do c, при использовании Foreground Service обязательным является недопустимое уведомление для строки состояния, даже если вы попытаетесь скрыть уведомление, установив минимальный приоритет, оно заменит его по умолчанию поведение. Пожалуйста, обратитесь к ' Запуск службы на переднем плане ' для получения дополнительной информации.
Постоянный сервис может потреблять много системных ресурсов и замедлять работу устройства, поэтому Android устанавливает ограничения, чтобы избежать злоупотреблений, но он также предоставляет несколько способов для разумных фоновых заданий , один из них WorkManager PeriodicWorkRequest , который может работать с закрытым приложением и может вернуться в рабочее состояние при соблюдении условий, даже при перезагрузке устройства. Но у него есть некоторые ограничения, такие как: максимальное время выполнения 10 минут, минимальный интервал повторения 15 минут.
Чтобы использовать WorkManager, сначала необходимо создать класс Worker, скажем CalculatorWorker, а затем создать рабочий пакет для запуска каждые 20 минут. минут для него:
PeriodicWorkRequest taxWorkRequest = PeriodicWorkRequest.Builder.From<CalculatorWorker>(TimeSpan.FromMinutes(20)).Build();
Отдайте его системе:
WorkManager.Instance.Enqueue(taxWorkRequest);