Android断点续传下载器JarvisDownloader的示例

  

<强> JarvisDownloader

  

熟悉漫威电影的人都知道贾维斯,他是钢铁侠的智能管家,帮助钢铁侠制造装甲,分析大量数据,协助建模等各种智能工作,可惜在复联2中,贾维斯与灵魂宝石共同结合成视觉,钢铁侠失去了这位如亲人一般的智能AI,后来托尼用F.R.I.D.A.Y代替了贾维斯的工作,但从钢铁侠与周五的互动来看,他只把当星期五做一般的AI,并没有投入如对待贾维斯的感情。

  

最近复联3上映,中国没有同步上映,真的太可惜了,五一本来还想过去香港看,但想到到时会人生人海还是算了,所以假期闲余时间就撸了个JarvisDownloader,之所以以贾维斯命的名,也是因为我太喜欢贾维斯这个人工智能了,它属于人工智能的顶端啊! JarvisDownloader虽然没有贾维斯那么强大,但在下载文件方面,具备了很多的优点。

  

 Android断点续传下载器JarvisDownloader的示例

  

<强>主要功能

  
      <李>支持断点续传下载李   <李>支持自定义文件夹路径,文件名。   <李>支持自定义SQLiteOpenHelper,用于保存下载进度等李   <李>下载进度回调时自动切换到UI线程,方便更新UI。   <李>自动与活动绑定生命周期,无需手动释放李   <李>活动不可见时,不会更新UI,可见时会自动恢复状态李   <李>支持查询下载历史列表   
  

<强>使用JarvisDownloader

  

依赖远程库

  gradle

        存储库{      maven {   url“https://jitpack.io”   }   }      依赖关系{      api的com.github.yuwenque: JarvisDownloader: 0.2.0      }      之前      

初始化数据库

        贾维斯。init(新DefaultDownloadHistoryDBHelper (applicationContext));      

你也可以自定义一个继承于AbsDownloadHistoryDBHelper的管理类,用于保存下载进度等操作,详细操作请参考<强> DefaultDownloadHistoryDBHelper

  

权限设置

        & lt; uses-permission android: name=" android.permission。互联网”/比;   & lt; uses-permission android: name=" android.permission。READ_EXTERNAL_STORAGE”/比;   & lt; uses-permission android: name=" android.permission。WRITE_EXTERNAL_STORAGE "/祝辞      

<强> Jarvis.Downloader构建下载任务

  

请在活动或服务中调用

     //构成下载器   贾维斯。下载器下载=Jarvis.with(这).withUrl (“http://pic1.win4000.com/wallpaper/2017-10-11/59dde2bca944f.jpg”);//是否允许ui不可见时继续下载   downloader.allowBackgroundDownload(真正的);//多线程下载数量   downloader.threadCount (3);//设置下载目录,非必须,默认目录为Environment.getExternalStorageDirectory () + File.separator +“贾维斯”   downloader.filePath (Environment.getExternalStorageDirectory() +文件。分离器+“贾维斯”);//设置文件名,非必须,但建议手动设置,默认为服务器文件的名字   downloader.fileName (“test.jpg”);//刷新进度的频率(毫秒),最小值为100   downloader.refreshTime (1000);//设置状态监听//假如当前上下文为活动的贾维斯话已经自动帮你回调到主线程了,不需要调用activity.runOnUiThread   下载器。setDownloadListener(新DownloadListener () {/* *   *文件下载完毕回调   * @param文件   */@Override   公共空间>   Jarvis.with(这)   .withUrl (“http://pic1.win4000.com/wallpaper/2017-10-11/59dde2bca944f.jpg”)   .allowBackgroundDownload(真正的)   .threadCount (3)   .filePath (Environment.getExternalStorageDirectory() +文件。分离器+“贾维斯”)   .fileName (“test.jpg”)   .refreshTime (1000)   .setDownloadListener(听众).download ();   之前      

贾维斯管理下载任务

     //异步获取下载历史记录,下载进度请自己计算   Jarvis.getInstance ()。getDownloadedList(新DataCallBacklocalFileRecordBeans) {      LocalFileRecordBean fileRecordBean=localFileRecordBeans.get (0);//下载进度   浮动进步=fileRecordBean.getDownloadedLength () * 1.0 f/fileRecordBean.getFileTotalLength ();      }   });//停止所有下载任务   .pauseAllDownloader Jarvis.getInstance () ();//开始所有下载任务   .startAllDownload Jarvis.getInstance () ();//删除所有下载任务及文件   .forceDeleteAll Jarvis.getInstance () ();//设置下载的线程池长度,如果当前有10个下载任务,//每个任务开启3个线程进行断点续传下载,那么此时只设置20个的话,将有部分下载任务需等待其他线程执行完任务才能开始   Jarvis.getInstance () .initThreadPoolLength (20);      

Android断点续传下载器JarvisDownloader的示例