liujingxing / rxhttp

🔥🔥🔥 Based on OkHttp encapsulation, support Kotlin Coroutines、RxJava2、RxJava3; 30s to get started.
https://juejin.im/post/5ded221a518825125d14a1d4
Apache License 2.0
3.74k stars 457 forks source link

下载文件的进度是在下载完成后1S内回调的,老版本不是实时返回的吗? #469

Closed JoneMa closed 10 months ago

JoneMa commented 11 months ago

代码如下:

 val factory = Android10DownloadFactory(Utils.getApp(), fileName)
        downloadApkDisposable =  RxHttp.get(newApkDownloadUrl)
            .setDecoderEnabled(false)
            .toDownloadObservable(factory,false)
            .onMainProgress {
                CMLogger.e("@@@@@MSP:",it.toString())
                EventBus.getDefault().post(EventCenter(DOWNLOAD_NEW_V_APK_PROGRESS, it.progress))
            }.doOnSubscribe {
                EventBus.getDefault().post(EventCenter(DOWNLOAD_NEW_V_APK_STATE, DownloadFileService.DOWNLOAD_STATE_START))
            }.subscribe({
                CMLogger.e("@@@@@MSP:",it.toString())
                newApkLocalFilePath = it.toString()
                EventBus.getDefault().post(EventCenter(DOWNLOAD_NEW_V_APK_STATE, DownloadFileService.DOWNLOAD_STATE_SUCCESS))
                releaseDownloadNewVersionApk()
            }, {
                EventBus.getDefault().post(EventCenter(DOWNLOAD_NEW_V_APK_STATE, DownloadFileService.DOWNLOAD_STATE_ERROR))
                releaseDownloadNewVersionApk()
            })

麻烦帮忙看下可以调整吗。版本号3.2.0

liujingxing commented 11 months ago

盲猜你添加了日志拦截器,是的话,取消就好

JoneMa commented 11 months ago

日志拦截器是指CMLogger这个里面的吗?还是RxHttp中的设置?

liujingxing commented 11 months ago

就是你自己通过OkHttpClient对象添加的日志拦截器

JoneMa commented 11 months ago

image 这里面没有日志拦截器,日志拦截器会影响到Rxhttp内的回调吗

liujingxing commented 11 months ago
image

这两个拦截器去掉再试试,拦截器里读取body的过程就是在下载,你这个解密拦截器应该就读取了body

liujingxing commented 11 months ago

可以在拦截器判断下,如果是下载,就直接跳过

JoneMa commented 11 months ago

好的 我先试试 多谢多谢