zoukankan      html  css  js  c++  java
  • Android使用Xutil3.0下载文件.md

    Android使用Xutil3.0下载文件.md

    新建项目:

    引入依赖:

     implementation 'org.xutils:xutils:3.5.0'
    
    添加权限:
      <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:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World!"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
    
        <Button
            android:id="@+id/xiazai"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="下载测试按钮"
            />
    
        <ProgressBar
            android:id="@+id/prg"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
            />
    
    
    </LinearLayout>
    

    MainActivity:

    package com.example.administrator.xutilstest;
    
    import android.media.SoundPool;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ProgressBar;
    import android.widget.Toast;
    
    import org.xutils.common.Callback;
    import org.xutils.ex.HttpException;
    import org.xutils.http.RequestParams;
    import org.xutils.x;
    
    import java.io.File;
    
    public class MainActivity extends AppCompatActivity {
    
        private ProgressBar progressBar;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            progressBar  = findViewById(R.id.prg);
    
            x.Ext.init(getApplication());
            x.Ext.setDebug(BuildConfig.DEBUG); // 是否输出debug日志, 开启debug会影响性能.
    
    
            Button button = findViewById(R.id.xiazai);
    
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String url = "http://localhost:8080/gh.zip";
    
                    RequestParams params = new RequestParams(url);
    
    
                    // 默认缓存存活时间, 单位:毫秒(如果服务器没有返回有效的max-age或Expires则参考)
                    params.setCacheMaxAge(1000 * 60);
    
                    x.http().get(params, new Callback.ProgressCallback<File>() {
                        @Override
                        public void onSuccess(File result) {
                            System.out.println("下载成功");
                        }
    
                        @Override
                        public void onError(Throwable ex, boolean isOnCallback) {
    
                        }
    
                        @Override
                        public void onCancelled(CancelledException cex) {
    
                        }
    
                        @Override
                        public void onFinished() {
    
                        }
    
                        private boolean hasError = false;
                        private String result = null;
                        @Override
                        public void onWaiting() {
    
                        }
    
                        @Override
                        public void onStarted() {
    
                            System.out.println("开始下载");
                        }
    
                        @Override
                        public void onLoading(long total, long current, boolean isDownloading) {
                            progressBar.setMax((int) total);
                            progressBar.setProgress((int) current);
    
                        }
    
                    });
                }
            });
        }
    }
    
    
  • 相关阅读:
    技术分享会之——智能指针
    TeleMCU技术规格
    Golang-interface(一 基本使用)
    关于Mac虚拟机中安装的Windows系统键盘问题
    Android 高速开发系列 打造万能的ListView GridView 适配器
    [Erlang]怎样在Erlang中使用SSL
    Web最新力作有奖试读获奖名单发布
    每天复习Shell—ls
    Mininet系列实验(七):Mininet脚本实现控制交换机行为
    Mininet系列实验(七):Mininet脚本实现控制交换机行为
  • 原文地址:https://www.cnblogs.com/charlypage/p/10205114.html
Copyright © 2011-2022 走看看