Я пытаюсь перейти с диспетчера заданий Firebase на диспетчер работы AndroidX. Мое приложение хорошо работало с Job Dispatcher. Проблема с диспетчером работ заключается в том, что он не выполняет периодическую работу после закрытия приложения. Без выполнения Периодической работы пользователи не могут получать уведомления.
Мое приложение тестируется на нескольких эмуляторах пикселей (например, SDK уровня 30), запускаемых из Android Studio. Я ожидал от этих эмуляторов стандартного поведения Android. Я также тестировал с использованием физических телефонов и получил ту же проблему.
Я искал решение, но пока безуспешно. Не могли бы вы помочь определить причину и решение?
Вот мой код Java:
Constraints constraints = new Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build();
PeriodicWorkRequest periodicWorkRequest = new PeriodicWorkRequest.Builder(MyClass.class, 15, TimeUnit.MINUTES)
.addTag("my_tag")
.setConstraints(constraints)
.setInitialDelay(15, TimeUnit.MINUTES)
.build();
WorkManager.getInstance(appContext)
.enqueueUniquePeriodicWork("my_unique_work_name", ExistingPeriodicWorkPolicy.REPLACE, periodicWorkRequest);
Log.d ( "From Work scheduling procedure...", "periodicWorkRequest enqueued" );
Вот моя конфигурация в build.gradle (уровень приложения)
implementation 'androidx.work:work-runtime:2.4.0'