Code Monkey home page Code Monkey logo

downloadx's People

Contributors

ssseasonnn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

downloadx's Issues

是否可以自定义 Referer

这是一个很好的库,但由于项目安全需要,我们希望该库可以自定义请求 Referer,当前是否可以自定义 Referer,若不可以,未来是否可以考虑加入这个功能

下载失败

单任务或者多任务下载,偶尔会卡到某个进度不再下载,点击暂停再点击继续就可以重新下载。
此外还有一个疑问请教大佬?关于状态的监听那块,具体代码如下:
downloadTask.state()
.onEach { state ->
// 更新状态
setState(state)
// 更新进度
setProgress(state.progress)
}
.launchIn(lifecycleScope)
这个状态的监听,每次recyclerview上下滑动,都会触发监听(我在这里做了本地数据库参数的初始化,通过变量控制第一次加载从本地数据库获取数据),感觉应该是DownloadTask 发送一次即可,这个地方大佬有什么好的建议吗? 感谢!

下载失败

依赖版本:implementation "com.github.ssseasonnn:DownloadX:1.0.2"
PS:1.0.1版本也试过,也是同样的问题
使用环境:小米8,雷电模拟器,移动网,电信网
使用代码:
val taskId = GlobalScope.download(
"https://rls.tapimg.com/pub2/202106/cdddafbfdaea6abdf0af1e524ca568ba.apk",
"taptap123.apk",
getExternalFilesDir("")?.path!! // 这里不设置保存路径,使用默认路径,也会出现同样的问题
)
taskId.state(1000)
.onEach {
Log.w("=====", "${it.javaClass.simpleName}---${it.progress.percentStr()}")
}.launchIn(lifecycleScope)
taskId.start()

异常情况:如下图(每次都是下载到某一个节点之后,就下载不动了,回调了多次同样进度之后就显示失败)
image

image

下载成功后仍回调多次

// 创建任务 val downloadTask = lifecycleScope.download(downloadURL, "base.apk", this.filesDir.toString()) downloadTask.state() .onEach { state -> Log.i("Download APK", "Downloaded Progress: ${state.progress.percent()}") loadingDialog.progress = state.progress.percent().toInt() if (state is State.Succeed) { loadingDialog.dismiss() loadingDialog.progress = 0 Toast.makeText(this, "Download done!", Toast.LENGTH_LONG).show() installApk(this, ProgressDialog(this), "this.filesDir.toString()/base.apk") } } .launchIn(lifecycleScope) // 使用lifecycleScope downloadTask.start()
当本地已存在文件时下载会回调多次

断点续传失败

调用downloadtask.stop后 再次调用start
下载进度又从0开始

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.