morristech
3/29/2019 - 6:36 AM

DownloadWorker.java

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;
    }
}