Я разрабатываю приложение для Android и использовал библиотеку Firebase JobDispatcher для запуска фонового задания каждый раз, когда пользователь включает Wi-Fi или мобильные данные, но, к сожалению, библиотека устарела, и теперь можно использовать новый WorkerManager.
У меня вопрос: как запускать задание с помощью WorkerManager каждый раз, когда Интернет доступен только?
Я проверил руководство и документацию по миграции библиотеки WorkerManager, но не смог добиться этого с помощью OneTimeWorkRequest или PeriodicWorkRequest.
Вот код, который я использовал для этого с библиотекой Firebase JobDispatcher.
FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this));
Job networkJob = dispatcher.newJobBuilder()
.setService(NetworkJobService.class)
.setTag(Const.NETWORK_JOB_TAG)
.setReplaceCurrent(true)
.setLifetime(Lifetime.FOREVER)
.setRetryStrategy(RetryStrategy.DEFAULT_LINEAR)
.setRecurring(true)
.setTrigger(Trigger.executionWindow(0, 0))
.setConstraints(Constraint.ON_ANY_NETWORK)
.build();
dispatcher.schedule(networkJob);