Fuel android 下载大文件

Fuel android download big size files

我在我的 Android 代码中使用 Fuel 来下载 PDF、音频、视频等内容,它运行良好,当我想下载大文件(50 MB 和 > 文件)时出现问题。 我阅读了有关 Fuel streamDestination 的信息,但不知道如何解决此问题。 这是我的代码:

Fuel.download("https://$url")
                .fileDestination { response, url ->
                    File(path, fileName)
                }

                .timeout(5000)
                .response { request, response, result ->

                    result.fold(

                        success = {

                            progressDialog.dismissDialog()
                            listener.onDocDownloaded(fileName)
                        },
                        
                        failure = {

                            progressDialog.dismissDialog()
                                
                                   }
                            
                }

我找到 solution 感谢 Derk-Jan Karrenbeld。 在这里我只放了工作代码:

        val outputStream = FileOutputStream(File(filePath))

        _downloadStatus.postValue(FileDownloadStatus.Downloading)

        Fuel.download(httpsedUrl)
            .streamDestination { response, _ -> Pair(outputStream, { response.body().toStream() }) }
            .fileDestination{response, request ->
                File(filePath)
            }
            .progress { readBytes, totalBytes ->
                val progress = readBytes.toFloat() / totalBytes.toFloat() * 100
                println("Bytes downloaded $readBytes / $totalBytes ($progress %)")
            }
            .response { result ->

                result.fold(
                        success = {
                            _downloadStatus.postValue(FileDownloadStatus.Downloaded)
                        },
                        failure = {
                            _downloadStatus.postValue(it.message?.let { it1 -> FileDownloadStatus.Failed(it1) })
                        }
                )
            }