使用开源组件进行断点下载

<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/et_path"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="http://192.168.1.100:8080" />

    <Button
		android:onClick="download"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="下载" />

    <TextView
        android:id="@+id/tv_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>

需要加入开源组件的jar包

package com.itheima.download2;

import java.io.File;

import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

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 Activity {
	private EditText et_path;
	private TextView tv_info;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		et_path = (EditText) findViewById(R.id.et_path);
		tv_info = (TextView) findViewById(R.id.tv_info);
	}

	public void download(View view){
		String path = et_path.getText().toString().trim();
		if(TextUtils.isEmpty(path)){
			Toast.makeText(this, "请输入下载的路径", 0).show();
			return;
		}else{
			HttpUtils http = new HttpUtils();
			HttpHandler handler = http.download(path,
					"/sdcard/xxx.zip",
				    true, // 如果目标文件存在,接着未完成的部分继续下载。服务器不支持RANGE时将从新下载。
				    true, // 如果从请求返回信息中获取到文件名,下载完成后自动重命名。
				    new RequestCallBack<File>() {

				        @Override
				        public void onStart() {
				        	tv_info.setText("conn...");
				        }

				        @Override
				        public void onLoading(long total, long current, boolean isUploading) {
				        	tv_info.setText(current + "/" + total);
				        }

				        @Override
				        public void onSuccess(ResponseInfo<File> responseInfo) {
				        	tv_info.setText("downloaded:" + responseInfo.result.getPath());
				        }
				        @Override
				        public void onFailure(HttpException error, String msg) {
				        	tv_info.setText(msg);
				        }
				});
		}
	}
}
时间: 2024-10-25 04:42:11

使用开源组件进行断点下载的相关文章

分享几个.NET WinForm开源组件,纪念逐渐远去的WinForm。。。

http://www.cnblogs.com/asxinyu/p/dotnet_opensource_project_WinForm.html 分享几个.NET WinForm开源组件,纪念逐渐远去的WinForm... 前面3个月的时间内,这些.NET开源项目你知道吗?系列文章已经发表了3篇,共计45个平时接触比较少,曾经默默无闻的.NET开源项目,展示给大家,当然不是每个人都能用得上,但也的确是有些人用了,反响还不错,所以非常感谢大家的支持.由于收藏夹的项目越来越少,越整理到最后,越发现一些

Java 实现的断点下载

该断点下载可应用于浏览器或者迅雷等下载工具的下载,实现方式有多种多样的,本文仅仅研究了单线程的下载.迅雷等下载工具会自己主动将下载资源分块并记录每块的起始位置,然后依据系统性能.起多线程下载. 1. 基本原理 从Request Header的Range信息里面获取已经下载的文件大小,然后创建response的outputstream 向client(浏览器或者迅雷等下载工具)写,写的时候又利用header里面的"Content-Range", 让client知道从哪个位置開始写: 读取

Android自定义控件——开源组件SlidingMenu的项目集成

转载请注明出处:http://blog.csdn.net/allen315410/article/details/39611355  在实际项目开发中,定制一个菜单,能让用户得到更好的用户体验,诚然菜单的样式各种各样,但是有一种菜单--滑动菜单,是被众多应用广泛使用的.关于这种滑动菜单的实现,我在前面的博文中也介绍了如何自定义去实现,请参考Android自定义控件--侧滑菜单,这篇博文描述的是如何从无到有创建一个侧滑菜单的控件,里面的代码不多,但是处理的逻辑和各种效果比较复杂,如果稍有不慎,这种

Android UI开源组件库BottomView ,第三方自定义UI控件

这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个) 实现功能: 可以在底部弹出的View里自定义布局: 可以自定义是否可以触摸外部消失: 可以自定义事件: 可以自定义外围背景是否透明: 可以自定义动画: 如果需要的话,可以强制为顶部View显示 BottomView.jar库文件下载地址:http://download.csdn.net/detail/jay100500/7547055 BottomView的Demo下载地址:

Android自定义控件 开源组件SlidingMenu的项目集成

在实际项目开发中,定制一个菜单,能让用户得到更好的用户体验,诚然菜单的样式各种各样,但是有一种菜单——滑动菜单,是被众多应用广泛使用的.关于这种滑动菜单的实现,我在前面的博文中也介绍了如何自定义去实现,请参考Android自定义控件——侧滑菜单,这篇博文描述的是如何从无到有创建一个侧滑菜单的控件,里面的代码不多,但是处理的逻辑和各种效果比较复杂,如果稍有不慎,这种自定义控件就要BUG不断,难以在项目中使用,而且实现的效果比较单一. 好在有开源力量的存在,在开源世界里,一切常用的实用的东西,都会有

CocoaPods管理第三方开源组件,入门介绍

原文链接:Introduction to CocoaPods Tutorial 通过这个教程,你会学习使用一个很流行的第三方开源组件管理工具----CocoaPods.不过这个工具是什么,为什么要使用它呢? 作为一个iOS开发者,你一定会用到很多别人的代码,这些代码以类库的形式提供.想象一下,如果所有的东西都要你从零开始创建,得有多麻烦! 如果没有管理工具,你可能会简单地将每个组件加入到你的工程中.但是,这么做有一些弊端: 1. 组件代码保存在你的工程中,浪费空间. 2. 没有一个集中的能看到所

安卓开发笔记——关于开源组件PullToRefresh实现下拉刷新和上拉加载(一分钟搞定,超级简单)

前言 以前在实现ListView下拉刷新和上拉加载数据的时候都是去继承原生的ListView重写它的一些方法,实现起来非常繁杂,需要我们自己去给ListView定制下拉刷新和上拉加载的布局文件,然后添加ScrollView和OnTouch监听,设置回调接口获取数据,为了更好的交互体验,我们还不能直接利用setVisibility隐藏显示布局等等一大堆的操作,累都累死了.(题外话:关于下拉刷新在新版的android-support-v4.jar里,其实谷歌已经为我们提供了一个控件叫SwipeRef

验证码的制作(二):使用开源组件jcaptcha来实现验证码

使用开源组件jcaptcha来实现验证码 之前说了简单的运用servlet来实现验证码,但其实现的验证码样式比较单一,容易被破解.所以接下来我来介绍另一种实现验证码的方式:那就是运用开源组件jcaptcha来实现样式更全面的验证码样式. 开始之前咱们先来看看运用jcaptcha实现验证码以及对其的验证的一个大致流程:流程图如下 开始之前我们需要下载jcaptcha开源组件jar包 上边就是该项目中需要用到的war包:可以到网上下载,然后将war包解压:这里需要注意的是需要把里面的.class文件

如何利用阿里视频云开源组件,快速自定义你的H5播放器?

摘要: Aliplayer希望提供一种方便.简单.灵活的机制,让客户能够扩展播放器的功能,并且Aliplayer提供一些组件的基本实现,用户可以基于这些开源的组件实现个性化功能,比如自定义UI和自己App server的交互等等,而不用从头开始开发一些功能,节省时间和精力. 阿里云播放器SDK(ApsaraVideo for Player SDK)是阿里视频云端到云到端服务的重要一环,除了支持点播和直播的基础播放功能外,还深度融合视频云业务,支持视频的加密播放.安全下载.首屏秒开.低延时等业务场