博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 使用开源xUtils来实现多线程下载(非原创)
阅读量:5286 次
发布时间:2019-06-14

本文共 2693 字,大约阅读时间需要 8 分钟。

1.程序员自己也是可以实现多线程下载的,只是代码量比较大,而且,其中有许多细节需要考虑到,在GitHub上有人写好的代码,我们可以拿过来使用下,节省了我们开发程序的时间

2.导包:xUtils-2.6.14.jar,文件可以去https://github.com/wyouflf/xUtils下载

3.fragment_main.xml

 

 4.MainActivity.java

package com.example.xutilsmultithreaddownload;import java.io.File;import com.lidroid.xutils.HttpUtils;import com.lidroid.xutils.exception.HttpException;import com.lidroid.xutils.http.HttpHandler;import com.lidroid.xutils.http.ResponseInfo;import com.lidroid.xutils.http.callback.RequestCallBack;import android.app.Activity;import android.app.ActionBar;import android.app.Fragment;import android.os.Bundle;import android.os.Environment;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;import android.os.Build;public class MainActivity extends Activity {    //错误提示的文本    private TextView tv_failure;    //进度条    private ProgressBar pb_bar;    //进度显示的文本    private TextView tv_progress;    @Override    protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.fragment_main);    tv_failure = (TextView) findViewById(R.id.tv_failure);    pb_bar = (ProgressBar) findViewById(R.id.pb_bar);    tv_progress = (TextView) findViewById(R.id.tv_progress);    }    public void click(View v) {    // 文件名字    String fileName = "ESurfing_V2.1.exe";    // 路径    String path = "http://192.168.1.66:8080/" + fileName;    HttpUtils http = new HttpUtils();    HttpHandler handler = http.download(path, Environment.getExternalStorageDirectory() + "/" + fileName, true, true, new RequestCallBack
() { //下载成功后调用 @Override public void onSuccess(ResponseInfo
arg0) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, arg0.result.getPath(), 0).show(); } //下载失败调用 @Override public void onFailure(HttpException arg0, String arg1) { // TODO Auto-generated method stub tv_failure.setText(arg1); } //下载的时候调用 @Override public void onLoading(long total, long current, boolean isUploading) { // TODO Auto-generated method stub super.onLoading(total, current, isUploading); //设置进度条的最大值 pb_bar.setMax((int)total); //设置进度当前的进度 pb_bar.setProgress((int)current); //文本显示当前的进度 tv_progress.setText(current*100/total+"%"); } }); }}

 

 5.加入权限

 

 6.xUtils使用

7.运行效果

 

转载于:https://www.cnblogs.com/biao2015/p/5094807.html

你可能感兴趣的文章
01_Docker概念简介、组件介绍、使用场景和命名空间
查看>>
go深度拷贝msgpack版
查看>>
代理技术
查看>>
其它职业
查看>>
Django内置auth模块中login_required装饰器用于类视图的优雅方式
查看>>
html - 黑科技-2(获取当前的IP地址)
查看>>
PAT 1100. Mars Numbers
查看>>
springMVC找不到JS等文件
查看>>
【转】AngularJs HTTP请求响应拦截器
查看>>
js模块化 javascript 模块化 闭包写法 闭包模块化写法
查看>>
Shiro简介
查看>>
MyEclipse快捷键
查看>>
(转载)MySql中 delimiter 详解
查看>>
[LeetCode] 765. Couples Holding Hands 情侣牵手
查看>>
B/S打印解决方案参考
查看>>
掌握时钟的切换,控制串口
查看>>
用jsp打印出水鲜花数
查看>>
自己写一个命令,将linux下的常用命令cat echo ls 汇集在这一个命令中
查看>>
Introducing “Razor” – a new view engine for ASP.NET
查看>>
算法题汇总
查看>>