Вы можете определить ограничения следующим образом:
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);