WorkManager实现安卓断点续传下载框架,可自动断网重连。
-
本库采用了workManager + kotlin + okhttp实现了断点续传下载、断网重连下载
-
框架特点
1.使用简单,任务下载过程中,遇到断网等问题,可自动重连,无需手动操作
2.断点续传,任务在执行过程中,用户退出app,杀死进程,突然断网等问题,相信大家都有遇到过,使用本库可轻松解决该问题。
使用方法
步骤1.将其添加到存储库末尾的根 build.gradle 中:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
步骤2.添加依赖项
dependencies {
implementation 'com.github.Larissa-x:DownloadManager:1.0.1'
}
步骤3.在你的application中进行初始化
DownloadManager.init(this);
步骤4.在清单文件中添加权限,如果已经有该权限,请勿重复添加
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- 在kotlin中的使用方式
DownloadManager.Builder(context)
.apply {
//是否开启断网重连
isNetworkReConnect = true
downloadUrl = "你的url"
//本库默认的下载路径、如果需要别的路径,需要自己手动创建文件夹
savePath = "${filesDir}${FileConfig.download_path}"
}
.build()
//下载进度回调监听
.setListener(object : DownloadManager.DownloadListener {
override fun onComplete(file: File) {
Log.d("下载成功", "onComplete: ${file.absolutePath}")
}
override fun onProgress(progress: Int) {
Log.d("下载中 progress进度回调 0 - 100", "onProgress: $progress")
}
override fun onError() {
Log.d("下载失败", "onError")
}
}).start()//开始下载任务
- 在java中的使用方式
DownloadManager.Builder builder = new DownloadManager.Builder(this);
//是否开启断网重连
builder.setNetworkReConnect(true);
//本库默认的下载路径、如果需要别的路径,需要自己手动创建文件夹
builder.setSavePath(getFilesDir() + FileConfig.download_path);
//下载url
builder.setDownloadUrl("");
builder.build()
.setListener(new DownloadManager.DownloadListener() {//下载监听回调
@Override
public void onComplete(@NonNull File file) {
//下载成功回调file、如果只使用一次,使用后可以调用file.delete()删除文件
}
@Override
public void onProgress(int progress) {
//已经转换好的下载进度
}
@Override
public void onError() {
//发生了异常
}
})
.start();
第一次写开源库,使用过程中遇到问题可留言,作者看到会第一时间回复。
原创作品,转载请注明出处,谢谢。