8 基于框架XUtils下的多线程断点下载
2015-03-15 19:33
281 查看
-------------------------------main.java-----------------------------
package com.example.bk;
import java.io.File;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
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;
public class MainActivity extends ActionBarActivity {
private EditText urlText1;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
urlText1 = (EditText) findViewById(R.id.urlText1);
textView = (TextView) findViewById(R.id.text);
}
public void downloadOnClick(View view) {
HttpUtils http = new HttpUtils();
HttpHandler handler = http.download(urlText1.getText().toString(),
"/sdcard/xx.pdf",
true, // 如果目标文件存在,接着未完成的部分继续下载。服务器不支持RANGE时将从新下载。
true, // 如果从请求返回信息中获取到文件名,下载完成后自动重命名。
new RequestCallBack<File>() {
@Override
public void onStart() {
textView.setText("conn...");
}
@Override
public void onLoading(long total, long current, boolean isUploading) {
textView.setText(current + "/" + total);
}
@Override
public void onSuccess(ResponseInfo<File> responseInfo) {
textView.setText("downloaded:" + responseInfo.result.getPath());
}
@Override
public void onFailure(HttpException error, String msg) {
textView.setText(msg);
}
});
}
}
。。。。。。。。。。。。main.xml。。。。。。。。。。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/urlText1"
android:text="http://192.168.137.1:8080/"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<Button
android:onClick="downloadOnClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
、、、、、、、、权限、、、
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
package com.example.bk;
import java.io.File;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
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;
public class MainActivity extends ActionBarActivity {
private EditText urlText1;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
urlText1 = (EditText) findViewById(R.id.urlText1);
textView = (TextView) findViewById(R.id.text);
}
public void downloadOnClick(View view) {
HttpUtils http = new HttpUtils();
HttpHandler handler = http.download(urlText1.getText().toString(),
"/sdcard/xx.pdf",
true, // 如果目标文件存在,接着未完成的部分继续下载。服务器不支持RANGE时将从新下载。
true, // 如果从请求返回信息中获取到文件名,下载完成后自动重命名。
new RequestCallBack<File>() {
@Override
public void onStart() {
textView.setText("conn...");
}
@Override
public void onLoading(long total, long current, boolean isUploading) {
textView.setText(current + "/" + total);
}
@Override
public void onSuccess(ResponseInfo<File> responseInfo) {
textView.setText("downloaded:" + responseInfo.result.getPath());
}
@Override
public void onFailure(HttpException error, String msg) {
textView.setText(msg);
}
});
}
}
。。。。。。。。。。。。main.xml。。。。。。。。。。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/urlText1"
android:text="http://192.168.137.1:8080/"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<Button
android:onClick="downloadOnClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
、、、、、、、、权限、、、
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
相关文章推荐
- 安卓系统下的多线程断点下载实现2利用开源框架XUtils
- 安卓开发-多线程常规实现+xUtils-master开源框架实现 断点下载
- Java多线程下载框架01:多线程的好处以及断点续传原理
- 使用开源项目xutils实现多线程断点下载
- 自己写个多任务多线程断点下载框架
- (开源多线程断点下载)开源项目xutils-
- 优雅设计封装基于Okhttp3的网络框架(四):多线程下载添加数据库支持(greenDao)及 进度更新
- 优雅设计封装基于Okhttp3的网络框架(三):多线程下载功能核心实现 及 线程池、队列机制、终止线程解析
- 用java编写多线程ftp断点下载文件程序
- java 多线程断点下载
- Asp.net 2.0 文件下载[支持多线程, 断点续传功能](示例代码下载)
- android多线程断点下载——网络编
- android多线程断点下载——网络编
- C# HttpWebRequest可断点上传,下载文件;SOCKET多线程多管道可断点传送大文件
- 以多线程、断点续传方式下载文件的实现
- 网络多线程断点下载
- 用java编写多线程ftp断点下载文件程序
- Android(五)数据存储之五网络多线程断点下载
- 一个简单的多线程、断点下载Java程序