Android使用开源项目Xutils实现多线程下载文件

来源:互联网 发布:淘宝企业店铺出售网址 编辑:程序博客网 时间:2024/05/17 07:33

布局文件中实现UI

<linearlayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" tools:context=".MainActivity" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">     <edittext android:id="@+id/tv_path" android:layout_height="wrap_content" android:layout_width="match_parent" 
android:text="http://down.360safe.com/inst.exe"><button android:layout_height="wrap_content" android:layout_margintop="10dip" 
android:layout_width="match_parent" android:onclick="download" android:text="下载">    <textview android:id="@+id/tv_info" android:layout_height="wrap_content" android:layout_margintop="10dip" 
android:layout_width="match_parent" android:text="提示信息">     </textview></button></edittext></linearlayout>

在mainactivity中实现代码功能

package com.wzw.downloaddemo;  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.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.EditText;import android.widget.TextView; public class MainActivity extends Activity {     private EditText etPath;    private TextView tvInfo;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        etPath=(EditText) findViewById(R.id.tv_path);        tvInfo=(TextView) findViewById(R.id.tv_info);                      }    public void download(View v){        String path =etPath.getText().toString();        HttpUtils http = new HttpUtils();        http.download(path, /sdcard/360.exe, true, true, new RequestCallBack<file>() {     <span style="white-space:pre">  </span>@Override            public void onStart() {                tvInfo.setText(正在连接...);            }                          @Override            public void onLoading(long total, long current, boolean isUploading) {                   tvInfo.setText(current + / + total);             }                          @Override             public void onFailure(HttpException error, String msg) {                   tvInfo.setText(msg);              }             @Override            public void onSuccess(ResponseInfo<file> responseInfo) {                // TODO Auto-generated method stub                tvInfo.setText(downloaded: + responseInfo.result.getPath());            }        });             } }</file></file>

用Utils的话比用传统的方式要方便的多。




0 0
原创粉丝点击