# FileDownloadDemo **Repository Path**: king3224/FileDownloadDemo ## Basic Information - **Project Name**: FileDownloadDemo - **Description**: 文件下载类 eg:下载视频 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-09-15 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #FileDownloaderDemo ##1 注册用户id 启动服务 ```java //必须先注册用户id 如果没有则传值null DownloadService.setUserid("haha"); this.startService(new Intent(this, DownloadService.class)); ``` ##2 添加缓存 ```java //获取downloadermanager this.downloadManager = DownloadService.getDownloadManager(); //url:文件网络下载地址 //cachePath:文件本地缓存的路径 不能为空 绝对路径 boolean result = downloadManager.addTask(url, cachePath); //可以自己定义文件名 addTask(String url, String cachePath, String fileName); ``` ##3 获取文件的信息 ```java //获取文件名 mDownloadManager.getFileName(url); //获取文件下载的进度 mDownloadManager.getProgress(url); //获取文件已经下载的大小 mDownloadManager.getFileDownloadedSize(url); //获取文件的总大小 mDownloadManager.getFileSize(url); ``` ##4 切换文件下载的状态 ```java //点击item后不要考虑文件当前的状态 调用此方法即可 mDownloadManager.switchStatus(url); //给item添加监听 可以获取状态 mDownloadManager.setOnFileDownloadStatusListener(url, new OnFileDownloadStatusListener() { @Override public void onFileDownloadStatusWaiting(DownloadFileInfo downloadFileInfo) { updateProgressPartly(1,downloadFileInfo,position); } @Override public void onFileDownloadStatusDownloading(DownloadFileInfo downloadFileInfo) { Log.d(TAG,"downloadFileInfo:"+downloadFileInfo.getDownloadSize()); updateProgressPartly(2,downloadFileInfo,position); } @Override public void onFileDownloadStatusPaused(DownloadFileInfo downloadFileInfo) { updateProgressPartly(3,downloadFileInfo,position); } @Override public void onFileDownloadStatusCompleted(DownloadFileInfo downloadFileInfo) { updateProgressPartly(4,downloadFileInfo,position); } @Override public void onFileDownloadStatusFailed(DownloadFileInfo downloadFileInfo) { updateProgressPartly(5,downloadFileInfo,position); } }); ``` ##5 全部下载 全部暂停 多个开始下载 多个暂停 ```java //多个下载 //传入需要开始下载的url集合 public void startAll(List urlList) //多个暂停 //传入需要暂停下载的url集合 public void stopAll(List urlList) ``` ![输入图片说明](http://git.oschina.net/uploads/images/2016/0519/170418_50dbb4de_521318.png "在这里输入图片标题")