zoukankan      html  css  js  c++  java
  • Android初级教程XUtils实现“断点续传”下载

    对于“断电续传”,在任何开发中都显得很重要。xutils对此封装的很好了,可以很简单的实现很多下载功能,其中就包括“断点续传”


    主要代码如下:

    package com.itydl.xutils;
    
    import java.io.File;
    
    import com.lidroid.xutils.HttpUtils;
    import com.lidroid.xutils.exception.HttpException;
    import com.lidroid.xutils.http.ResponseInfo;
    import com.lidroid.xutils.http.callback.RequestCallBack;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
    	private TextView tv_failure;
    	private TextView tv_progress;
    	private ProgressBar pb;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		tv_failure = (TextView) findViewById(R.id.tv_failure);
    		tv_progress = (TextView) findViewById(R.id.tv_progress);
    		pb = (ProgressBar) findViewById(R.id.pb);
    	}
    
    	public void click(View v){
    		HttpUtils utils = new HttpUtils();
    		String fileName = "QQPlayer.exe";
    		//确定下载地址
    		String path = "http://192.168.1.104:8080/" + fileName;
    		utils.download(path, //下载地址
    				"sdcard/QQPlayer.exe", //文件保存路径
    				true,//是否支持断点续传
    				true, new RequestCallBack<File>() {
    					
    					//下载成功后调用
    					@Override
    					public void onSuccess(ResponseInfo<File> arg0) {
    						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.setMax((int)total);
    						pb.setProgress((int)current);
    						tv_progress.setText(current * 100 / total + "%");
    					}
    				});
    	}
    
    }
    


  • 相关阅读:
    codeforces 455B A Lot of Games(博弈,字典树)
    HDU 4825 Xor Sum(二进制的字典树,数组模拟)
    hdu 1800 Flying to the Mars(简单模拟,string,字符串)
    codeforces 425A Sereja and Swaps(模拟,vector,枚举区间)
    codeforces 425B Sereja and Table(状态压缩,也可以数组模拟)
    HDU 4148 Length of S(n)(字符串)
    codeforces 439D Devu and Partitioning of the Array(有深度的模拟)
    浅谈sass
    京东楼层案例思维逻辑分析
    浅谈localStorage和sessionStorage
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299647.html
Copyright © 2011-2022 走看看