How to download a file in Android and show the progress very easily?

Most of the time while developing Android Apps, we come across a common use-case that is to download a file in Android and show the progress in the progress dialog.
At MindOrks, we have an open-source library PRDownloader that solves this problem very easily.
How to use the PRDownloader library to download a file very easily?
First of all, add this in your build.gradle
compile 'com.mindorks.android:prdownloader:0.5.0'
Do not forget to add internet permission in manifest if already not present:
<uses-permission android:name="android.permission.INTERNET" />
Then initialize it in onCreate() Method of application class :
PRDownloader.initialize(getApplicationContext());
Initializing it with some customization
// Enabling database for resume support even after the application is killed:
PRDownloaderConfig config = PRDownloaderConfig.newBuilder()
.setDatabaseEnabled(true)
.build();
PRDownloader.initialize(getApplicationContext(), config);
// Setting timeout globally for the download network requests:
PRDownloaderConfig config = PRDownloaderConfig.newBuilder()
.setReadTimeout(30_000)
.setConnectTimeout(30_000)
.build();
PRDownloader.initialize(getApplicationContext(), config);
Make a download request:
int downloadId = PRDownloader.download(url, dirPath, fileName)
.build()
.setOnStartOrResumeListener(new OnStartOrResumeListener() {
@Override
public void onStartOrResume() {
}
})
.setOnPauseListener(new OnPauseListener() {
@Override
public void onPause() {
}
})
.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel() {
}
})
.setOnProgressListener(new OnProgressListener() {
@Override
public void onProgress(Progress progress) {
}
})
.start(new OnDownloadListener() {
@Override
public void onDownloadComplete() {
}
@Override
public void onError(Error error) {
}
});
It has callback a onProgress where we get the progress for the download that can be used to show the progress in progress dialog.
Pause a download request
PRDownloader.pause(downloadId);
Resume a download request
PRDownloader.resume(downloadId);
Cancel a download request
// Cancel with the download id
PRDownloader.cancel(downloadId);
// The tag can be set to any request and then can be used to cancel the request
PRDownloader.cancel(TAG);
// Cancel all the requests
PRDownloader.cancelAll();
Status of a download request
Status status = PRDownloader.getStatus(downloadId);
Clean up resumed files if database enabled
// Method to clean up temporary resumed files which is older than the given day
PRDownloader.cleanUp(days);
More examples and the PRDownloader Library Github Project are available here.
Overview of PRDownloader library:
- This file downloader library can be used to download any type of files like image, video, pdf, apk and etc.
- This file downloader library supports pause and resume while downloading a file.
- Supports large file download.
- This downloader library has a simple interface to make the download request.
- We can check if the status of downloading with the given download Id.
- PRDownloader gives callbacks for everything like onProgress, onCancel, onStart, onError and etc while downloading a file.
- Supports proper request canceling.
- Many requests can be made in parallel.
- All types of customization are possible.
This way we can download the file in Android and show the progress very easily.
That's it for now.
Happy Downloading :)