android - 关于asynchttp网络协议的问题
PHP中文网
PHP中文网 2017-04-17 14:41:55
[Android讨论组]

相信大部分开发者都用过asynchttp框架,关于新版本的网络连接问题,一直有一个疑问,就是这个封装好的框架的中,如何获取上传文件或者下载文件的进度?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
伊谢尔伦

求大神解答一下下

PHP中文网

菜鸟,也没有用过asynchttp,但是用okhttp搞过传递下载进度,也许有点参考价值?

FileOutputStream out = new FileOutputStream(fileName);
InputStream in = response.body().byteStream();//从reponse中获得输入流
byte[] buffs = new byte[20460];//写入缓冲区
int count;//从输入流写入缓冲区的大小
int size = Integer.valueOf(length);//待下载文件总大小
long per;//下载百分比
long total = 0;//累计写入文件大小
long time = SystemClock.elapsedRealtime();
while ((count = in.read(buffs)) != -1) {
    out.write(buffs, 0, count);
    total += count;
    per = 100 * total / size;
    if (callback != null && (SystemClock.elapsedRealtime() - time) > 500) {
        callback.getDownloadPercentage((int) per);//回调方法,每隔500毫秒更新下载百分比一次,千万不要更新太频繁,主线程会卡住的
        Log.d("per", per + "");
        time = SystemClock.elapsedRealtime();
    }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号