public class DownloadWorker extends Worker {
@NonNull
@Override
public WorkerResult doWork() {
String url = getInputData().getString("key_url", "");
if (URLUtil.isValidUrl(url)) {
long downloadId = downloadFile(url);
Data outputData = new Data.Builder()
.putLong("key_download_id", downloadId).build();
setOutputData(outputData);
return Result.SUCCESS;
} else {
return Result.FAILURE;
}
}
public long downloadFile(String url) {
Long result = -1L;
DownloadManager downloadManager = (DownloadManager)
getApplicationContext()
.getSystemService(Context.DOWNLOAD_SERVICE);
if (downloadManager != null) {
DownloadManager.Request request =
new DownloadManager.Request(Uri.parse(url));
result = downloadManager.enqueue(request);
}
return result;
}
}