首页 > 代码库 > Android使用开源项目Xutils实现多线程下载文件
Android使用开源项目Xutils实现多线程下载文件
#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 onl oading(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的话比用传统的方式要方便的多。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。