#1.下载utils项目
https://github.com/wyouflf/xUtils
#2布局文件中实现UI
<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"
tools:context=".MainActivity" >
<EditText
android:id="@+id/tv_path"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="http://down.360safe.com/inst.exe" />
<Button
android:layout_marginTop="10dip"
android:layout_width="match_parent"
android:onClick="download"
android:layout_height="wrap_content"
android:text="下载"
/>
<TextView
android:id="@+id/tv_info"
android:layout_width="match_parent"
android:layout_marginTop="10dip"
android:layout_height="wrap_content"
android:text="提示信息"
/>
</LinearLayout>
#3.在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());
}
});
}
}
用Utils的话比用传统的方式要方便的多。