• 使用第三方框架xUtils2进行下载


    AndroidManifest.xml中添加权限

     <uses-permission android:name="android.permission.INTERNET"/>
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.msi.xutils.MainActivity">
    
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="下载"
            android:onClick="click"/>
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_failure"/>
    
        <ProgressBar
            android:id="@+id/pb_download"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            style="@android:style/Widget.ProgressBar.Horizontal" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_progressBar"/>
    </LinearLayout>
    

      

    MainActivity代码

    package com.example.msi.xutils;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    import android.widget.Toast;
    
    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 java.io.File;
    
    public class MainActivity extends AppCompatActivity {
    
    
        private TextView tv_failure;
        private TextView tv_pargressBar;
        private ProgressBar pb_download;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            tv_failure = (TextView) findViewById(R.id.tv_failure);
            tv_pargressBar = (TextView) findViewById(R.id.tv_progressBar);
            pb_download = (ProgressBar) findViewById(R.id.pb_download);
        }
    
    
        public void click(View v){
            HttpUtils http = new HttpUtils();
            String fileName = "TeamViewer.exe";
            String webPath = "http://172.17.11.161:8080/" + fileName;
    
    
            http.download(webPath,//下载地址
                    "sdcard/TeamViewer.exe",//文件保存路径
                    true,//断点续传
                    true, //自动重命名
                    new RequestCallBack<File>() {
    
                        @Override
                        public void onSuccess(ResponseInfo<File> responseInfo) {
                            Toast.makeText(MainActivity.this,responseInfo.result.getPath(),Toast.LENGTH_SHORT).show();
                        }
    
                        @Override
                        public void onLoading(long total, long current, boolean isUploading) {
                            super.onLoading(total, current, isUploading);
                            tv_pargressBar.setText(current * 100 /total + "%");
                            pb_download.setMax((int)total);
                            pb_download.setProgress((int)current);
                        }
    
                        @Override
                        public void onFailure(HttpException e, String s) {
                            tv_failure.setText(s);
                        }
    
            });
        }
    }
    

      

  • 相关阅读:
    项目管理和项目群管理的区别
    项目群管理
    PRINCE2如何完善PMBOK和您的PMP资格证书?
    为什么需要prince2项目管理方法论?
    PMP和PRINCE2到底有什么区别?哪个含金量更高?
    同步和异步
    Promise理解
    async和await实现异步的同步等待
    Mysql数据库操作基础步骤
    PHP和javascript区别
  • 原文地址:https://www.cnblogs.com/mlsq2015/p/5576164.html
Copyright © 2020-2023  润新知