最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

xutils工具断点下载文件,android xutils3工具的使用

Android 太平洋学习网 0浏览 评论

xutils是android中非常好用的一个文件断点上传下载工具,使用极其简单,现在已经更新到了android xutils3版本了,那么在android中如何实现文件的断点下载以及更新进度条的功能呢?可以参考下面的代码来操作,小编对xutils进行了简单的封装,大家可以直接复制过去使用!

第一步:引入xutils工具,在build.gradle中加入xutils3工具的jar包

implementation 'org.xutils:xutils:3.6.19'

第二步:使用xutils实现断点下载并更新进度条的功能

private Callback.Cancelable cancelable;
private isCancel = false;
private void download(String fileUrl, String savePath) {

	File file = new File(savePath);
	try {
		file.createNewFile();
	} catch (IOException e) {
		e.printStackTrace();
	}

	RequestParams params = new RequestParams(url);
	//文件存储位置
	params.setSaveFilePath(savePath);
	//设置是否根据头信息命名文件
	params.setAutoRename(false);  
	//设置文件下载断点续传
	params.setAutoResume(true);   
	//设置加载的线程池(1~3)
	params.setExecutor(new PriorityExecutor(2, true)); 
	//快速取消
	params.setCancelFast(true);

	cancelable = x.http().get(params, new Callback.ProgressCallback<File>() {
		@Override
		public void onWaiting() {
			System.out.println("等待下载onWaiting");
		}

		@Override
		public void onStarted() {
			System.out.println("开始开始下载");
		}

		@Override
		public void onLoading(long total, long current, boolean isDownloading) {
			//如果为true则取消下载,isCancel可能在别的地方有设置值
			if (isCancel) {
				quxiaoxiaozai();
			}
			System.out.println("真实长度" + total);
			//计算下载百分比
			int percent = (int) (((float) current / total) * 100);
			//此处可以更新UI界面,如进度条,请再主线程中进行
			//....
		}

		@Override
		public void onSuccess(File result) {
			System.out.print("下载成功.onSuccess");
			//此处可以更新UI界面,如进度条,请再主线程中进行
			//....
		}

		@Override
		public void onError(Throwable ex, boolean isOnCallback) {
			System.out.print("下载错误"+ex.getMessage());
		}

		@Override
		public void onCancelled(CancelledException cex) {
			System.out.print("取消下载.onCancelled");
		}

		@Override
		public void onFinished() {
			System.out.print("下载完成.onFinished");
			//此处可以更新UI界面,如进度条,请再主线程中进行
			//....
		}
	});

}

public void quxiaoxiaozai() {
	cancelable.cancel();
	isCancel = true;
}

xutils的使用就是这么简单,希望能帮助到大家!

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/android/1001.html
"文章很值,打赏犒劳作者一下"
微信号: Javaweb_engineer

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

与本文相关的文章

发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)

网友最新评论