You can do like this.
DownloadManager downloadManager;
downloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse("http://xxx.apk");
DownloadManager.Request request = new DownloadManager.Request(uri);
// You can choose network type
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
downloadManager.getRecommendedMaxBytesOverMobile(getApplicationContext());
final long flag = downloadManager.enqueue(request);
IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE );
BroadcastReceiver receiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
long anotherFlag = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID,-1);
if(anotherFlag == flag){
// do something you want to do
}
}
};
registerReceiver(receiver, filter);