Android 断点续传,简单易用,快速实现断点续传功能,Android文件下载、安卓文件下载、安卓断点续传、阿里云OSS断点续传、AliyunOSS、Apk更新、Weex更新、Android动态更新

本文介绍了一位老程序员如何简单快速地实现Android断点续传文件下载功能,适用于Android设备的Apk更新和Weex打包文件下载。在解决网络不稳定导致的下载中断问题时,作者发现了现有代码的错误并进行了修正。文中提供了相应的代码示例和使用方法,并提及了Weex存在的坑和对流量的考虑。
摘要由CSDN通过智能技术生成

Android断点续传文件下载,简单实用的代码,如需要可参考。

希望不要觉得我又造一个轮子,我先用了网上代码觉得不好使用,而且发现有错误;

有一些功能强大的框架,我懒得去了解,去学习怎样使用它也要花时间;

简单实现自己的功能就好,我比较倾向于容易理解,简单实用。

 

本人老程序员一个,没有专注和擅长哪一个开发环境;

最近要开发一个自助售卖机的客户端,

今天要实现文件下载功能,用于更新设备上的广告(mp4视频文件),

还有用于版本升级,下载APK文件和Weex打包的文件;

设备都是用4G物联网卡,流量不多,所以要有断点续传。

 

下面是写好的下载类:

 

import java.io.File;
import java.io.InputStream;
import java.io.RandomAccessFile;
import okhttp3.Headers;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class WGDownloadManager
{

    /**
     * 下载文件
     * @param downloadUrl
     * @param savePath
     * @param saveName
     * @param callback
     */
    public void downloadFile(final String downloadUrl, final String savePath, final String saveName, final IDownloadFile callback) {
        checkDownloadFile(downloadUrl, new ICheckDownloadFile() {
            @Override
            public void onResult(long contentLength, boolean isAcceptRanges) {
                /**
                 * 1. 下载的时候,先保存为saveName+“.tmp”结尾的临时文件
                 * 2. 下载完成后,再把临时文件重命名为正式文件名(saveName)
                 */
                if (callback != null) {
                    callback.onBegin(contentLength, isAcceptRanges);
                }
                try {
                    // 检查保存目录,不存在就创建
                    File fPath = new File(savePath);
                    if (!fPath.exists()) {
                        fPath.mkdirs();
                    }
                    // 检查文件是否已下载,已下载成功就直接返回
                    File fFile = new File(fPath, saveName);
                    if (fFile.exists() && fFile.length() == contentLength) {
                        if (callback != null) {
                            callback.onFinish(0);
                        }
                        return;
                    }
                    // 检查临时文件,已下载完成的,就改名并直接返回
                    File tmpFile = new File(fPath, saveName+".tmp");
            
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值