Как запланировать работу, когда пользователь подключается или отключается от WiFi с помощью WorkManager? - PullRequest
0 голосов
/ 22 декабря 2018

У меня есть несколько задач для запуска, когда пользователь подключается (и отключается) к WiFi.До android O я использовал неявные намерения в манифесте.Но теперь из-за новых ограничений я не могу их больше использовать.Я попытался использовать новый компонент WorkManager, чтобы запланировать выполнение задачи при подключении пользователя к Wi-Fi, однако я не понимаю, как установить это конкретное ограничение.У Constraints.Builder() есть только один метод, связанный с сетью, и он setRequiredNetworkType().

Можете ли вы подсказать, как я могу установить это правильно?

1 Ответ

0 голосов
/ 22 декабря 2018

Вы можете определить ограничения следующим образом:

 Constraints myConstraints = new Constraints.Builder()
                    .setRequiredNetworkType(NetworkType.CONNECTED)
                    // Many other constraints are available, see the
                    // Constraints.Builder reference
                    .build();

            PeriodicWorkRequest.Builder job =
                    new PeriodicWorkRequest.Builder(MyJob.class, 15,
                            TimeUnit.MINUTES).setConstraints(myConstraints);

            // Create the actual work object:
            PeriodicWorkRequest periodicJob = job.build();
            // Then enqueue the recurring task:
            WorkManager.getInstance().enqueue(mergeInspectionsRequest);

РЕДАКТИРОВАТЬ

Чтобы запустить задание только один раз, используйте OneTimeWorkRequest

  OneTimeWorkRequest onetimeJob = new OneTimeWorkRequest.Builder(MyJob.class)
                    .setConstraints(myConstraints).build();
WorkManager.getInstance().enqueue(onetimeJob);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...