代码里面有详细的注释:
/**
* 该方法是调用了系统的下载管理器
*/
public void downLoadApk(Context context,String url){
/**
* 在这里返回的 reference 变量是系统为当前的下载请求分配的一个唯一的ID,
* 我们可以通过这个ID重新获得这个下载任务,进行一些自己想要进行的操作
* 或者查询下载的状态以及取消下载等等
*/
Uri uri = Uri.parse(url); //下载连接
manager = (DownloadManager) context.getSystemService(context.DOWNLOAD_SERVICE); //得到系统的下载管理
requestApk = new DownloadManager.Request(uri); //得到连接请求对象
requestApk.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI); //指定在什么网络下进行下载,这里我指定了WIFI网络
requestApk.setDestinationInExternalPublicDir(context.getPackageName()+"/myDownLoad","xiaoyuantong.apk"); //制定下载文件的保存路径,我这里保存到根目录
requestApk.setVisibleInDownloadsUi(true); //设置显示下载界面
requestApk.allowScanningByMediaScanner(); //表示允许MediaScanner扫描到这个文件,默认不允许。
requestApk.setTitle("xxx更新下载"); //设置下载中通知栏的提示消息
requestApk.setDescription("xxx更新下载");//设置设置下载中通知栏提示的介绍
long downLoadId = manager.enqueue(requestApk); //启动下载,该方法返回系统为当前下载请求分配的一个唯一的ID
}