@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()); }
.setConstraints(new Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) .setRequiresBatteryNotLow(true) .build()) .setInputData(new Data.Builder() .setConstraints(new Constraints.Builder() .setRequiresStorageNotLow(true) .setRequiresBatteryNotLow(true) .build()) .setInputData(new Data.Builder()
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); } }); } }
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(); }