赞
踩
运行效果图:
AsyncTask+HttpClient并实现上传进度监听
我曾在《 Android 网络编程之使用HttpClient 批量上传文件 》一文中介绍过如何通过 HttpClient 实现多文件上传和服务器的接收。在上一篇主要使用 Handler+HttpClient 的方式实现文件上传。这一篇将介绍使用 AsyncTask+HttpClient 实现文件上传并监听上传进度。
监控进度实现:
首先定义监听器接口。如下所示:
/**
* 进度监听器接口
*/
public interface ProgressListener {
public void transferred(longtransferedBytes);
}
实现监控进度的关键部分就在于记录已传输字节数,所以我们需重载 FilterOutputStream ,重写其中的关键方法,实现进度监听的功能,如下所示,本例中首先重载的是 HttpEntityWrapper ,顾名思义,就是将需发送的 HttpEntity 打包,以便计算总字节数,代码如下:
package com.jph.ufh.utils;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.http.HttpEntity;
import org.apache.http.entity.HttpEntityWrapper;
/*
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。