new OneTimeWorkRequest.Builder(ChangesetAutoCloserWorker.class) .setInitialDelay(CLOSE_CHANGESETS_AFTER_INACTIVITY_OF, TimeUnit.MILLISECONDS) .setConstraints(new Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) .build()) .build());
new OneTimeWorkRequest.Builder(DownloadWorker.class) .setConstraints(new Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) .setRequiresBatteryNotLow(true) .build()) .setInputData(new Data.Builder() .putString(DownloadWorker.KEY_URL, new OneTimeWorkRequest.Builder(UnZIPWorker.class) .setConstraints(new Constraints.Builder() .setRequiresStorageNotLow(true) .setRequiresBatteryNotLow(true) .build()) .setInputData(new Data.Builder() .putString(DownloadWorker.KEY_RESULTDIR, "unzipped")
Constraints constraints = new Constraints.Builder() .setRequiresCharging(true) .build();
public void doTheDownload() { Constraints constraints=new Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) .setRequiresBatteryNotLow(true) .build(); OneTimeWorkRequest downloadWork= new OneTimeWorkRequest.Builder(DownloadWorker.class) .setConstraints(constraints) .setInputData(new Data.Builder() .putString(DownloadWorker.KEY_URL, "https://commonsware.com/Android/Android-1_0-CC.pdf") .putString(DownloadWorker.KEY_FILENAME, "oldbook.pdf") .build()) .addTag("download") .build(); WorkManager.getInstance().enqueue(downloadWork); final LiveData<WorkInfo> liveOpStatus= WorkManager.getInstance().getWorkInfoByIdLiveData(downloadWork.getId()); liveWorkStatus.addSource(liveOpStatus, workStatus -> { liveWorkStatus.setValue(workStatus); if (workStatus.getState().isFinished()) { liveWorkStatus.removeSource(liveOpStatus); } }); } }
@Test public void downloadWithConstraints() { Constraints constraints=new Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) .setRequiresBatteryNotLow(true) .build(); WorkRequest work=buildWorkRequest(constraints); assertFalse(expected.exists()); WorkManager.getInstance().enqueue(work); WorkManagerTestInitHelper.getTestDriver().setAllConstraintsMet(work.getId()); assertTrue(expected.exists()); }
static void enqueue() { WorkManager.getInstance() .enqueue(new OneTimeWorkRequest.Builder(MysplashMuzeiWorker.class) .setConstraints(new Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) .build()) .build()); }
private static Constraints buildConstraints(JobRequest request) { Constraints.Builder constraintsBuilder = new Constraints.Builder() .setRequiresBatteryNotLow(request.requiresBatteryNotLow()) .setRequiresCharging(request.requiresCharging()) .setRequiresStorageNotLow(request.requiresStorageNotLow()) .setRequiredNetworkType(mapNetworkType(request.requiredNetworkType())); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { constraintsBuilder.setRequiresDeviceIdle(request.requiresDeviceIdle()); } return constraintsBuilder.build(); }