Скорее всего, существует множество проблем с этой реализацией.Фоновые службы заблокированы в современных версиях Android, и даже в старых версиях, где запущен такой сервис (с циклом Runnable), очень часто возникают ошибки.
Начиная с 2018 года, лучший способ запустить запланированное заданиеиспользовать библиотеку WorkManager из компонентов архитектуры Android.
WorkManager выбирает подходящий способ планирования фоновой задачи - в зависимости от уровня API устройства и включенных зависимостей, WorkManager может использовать JobScheduler, Firebase JobDispatcher или AlarmManager.Вам не нужно писать логику устройства, чтобы выяснить, какими возможностями обладает устройство, и выбрать соответствующий API;вместо этого вы можете просто передать свою задачу в WorkManager и позволить ему выбрать лучший вариант.
https://developer.android.com/topic/libraries/architecture/workmanager
Вы можете определить задачу следующим образом
public class CustomWorker extends Worker {
...
}
и затем запланируйте это следующим образом
new PeriodicWorkRequest.Builder photoWorkBuilder =
new PeriodicWorkRequest.Builder(CustomWorker.class, 12,
TimeUnit.HOURS);
// ...if you want, you can apply constraints to the builder here...
// Create the actual work object:
PeriodicWorkRequest work = customWorkerBuilder.build();
// Then enqueue the recurring task:
WorkManager.getInstance().enqueue(work);