Skip to content

Instantly share code, notes, and snippets.

@wmucheru
Created September 6, 2018 13:19
Show Gist options
  • Save wmucheru/878323dc4027d2cbee283efd170bd6ee to your computer and use it in GitHub Desktop.
Save wmucheru/878323dc4027d2cbee283efd170bd6ee to your computer and use it in GitHub Desktop.
Using DownloadManager to download files in Android
package app.test;
import android.app.Activity;
import android.app.DownloadManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
public class Test extends Activity {
protected static final String TAG = "DownloadMgr";
private DownloadManager dMgr;
private TextView tv;
private long downloadId;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView)findViewById(R.id.tv);
}
@Override
protected void onResume() {
super.onResume();
dMgr = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
}
public void doClick(View view) {
DownloadManager.Request dmReq = new DownloadManager.Request(
Uri.parse("http://aBigFile.zip"));
dmReq.setTitle("Platform Tools");
dmReq.setDescription("Download for Linux");
dmReq.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE);
IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
registerReceiver(mReceiver, filter);
downloadId = dMgr.enqueue(dmReq);
tv.setText("Download started... (" + downloadId + ")");
}
public BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
long doneDownloadId =
extras.getLong(DownloadManager.EXTRA_DOWNLOAD_ID);
tv.setText(tv.getText() + "\nDownload finished (" +
doneDownloadId + ")");
if(downloadId == doneDownloadId)
Log.v(TAG, "Our download has completed.");
}
};
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(mReceiver);
dMgr = null;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment