new OneTimeWorkRequest.Builder(ChangesetAutoCloserWorker.class) .setInitialDelay(CLOSE_CHANGESETS_AFTER_INACTIVITY_OF, TimeUnit.MILLISECONDS) .setConstraints(new Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) .build())
public void doTheDownload() { OneTimeWorkRequest downloadWork= new OneTimeWorkRequest.Builder(DownloadWorker.class) .setConstraints(new Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) .setRequiresBatteryNotLow(true) OneTimeWorkRequest unZIPWork= new OneTimeWorkRequest.Builder(UnZIPWorker.class) .setConstraints(new Constraints.Builder() .setRequiresStorageNotLow(true) .setRequiresBatteryNotLow(true)
.setConstraints(constraints) .addTag(TAG_OUTPUT) .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); } }); } }
private WorkRequest buildWorkRequest(Constraints constraints) { OneTimeWorkRequest.Builder builder= new OneTimeWorkRequest.Builder(DownloadWorker.class) .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"); if (constraints!=null) { builder.setConstraints(constraints); } return builder.build(); } }
static void enqueue() { WorkManager.getInstance() .enqueue(new OneTimeWorkRequest.Builder(MysplashMuzeiWorker.class) .setConstraints(new Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) .build()) .build()); }
@Override public void plantOneOff(JobRequest request) { if (request.isTransient()) { TransientBundleHolder.putBundle(request.getJobId(), request.getTransientExtras()); } OneTimeWorkRequest workRequest = new OneTimeWorkRequest.Builder(PlatformWorker.class) .setInitialDelay(request.getStartMs(), TimeUnit.MILLISECONDS) // don't use the average here, WorkManager will do the right thing .setConstraints(buildConstraints(request)) .addTag(createTag(request.getJobId())) .build(); // don't set the back-off criteria, android-job is handling this WorkManager workManager = getWorkManager(); if (workManager == null) { throw new JobProxyIllegalStateException("WorkManager is null"); } workManager.enqueue(workRequest); }