首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DownloadManager实现文件下载功能

不想每一次都是用第三方的东西,android系统应该自己拥有下载的工具类,然后就是我们今天要讲的 DownloadManager了。...DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); 得到manager对象之后我们就需要一个下载请求...下载请求是DownloadManager的一个内部类Request,我们先生成Request的对象:DownloadManager.Request request = new DownloadManager.Request...我们根据需要选择合适的参数,如果我们希望下载的时候显示进度,那么我们就可以设置Request.VISIBILITY_HIDDEN,这样在下载的时候我们就看不到通知了,不过这样的坏处是我们就无法知道下载是否成功了...原来DownloadManager下载完成之后会发送一个广播,我们只需要注册一个广播接收器得到广播就可以进行我们自己的操作了。

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

Android开发笔记(六十一)文件下载管理DownloadManager

Request.setNotificationVisibility : 设置通知栏上的下载任务的可见类型。...表示下载进行时与完成后都可见,Request.VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION表示只有下载完成后可见。...建议自行设置标题,因为默认标题是下载的文件名。 Request.setDescription : 设置通知栏上的消息描述。建议自行设置描述,因为默认描述是系统估算的下载剩余时间。...查询下载进度 虽然下载进度可在通知栏上查看,但是有时APP自身也想了解当前的下载进度,那就要调用DownloadManager的query方法。...自定义进度条 文件下载和上传都经常用到进度条,可是Android自带的ProgressBar无法显示进度百分比的文本。

4.8K41

基于DownloadManager的简单下载器编写小结

基于DownloadManager,可以做一个轻量级的下载器,将下载任务交给系统去执行,减轻自身APP的压力,何乐而不为呢?!...(Context.DOWNLOAD_SERVICE); 构建下载请求 DownloadManager.Request request = new DownloadManager.Request(Uri.parse...那么必须声明以下权限 <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" / 然后设置不可见...} } } }; //注册,这里只能拦截文件下载成功的广播,并不能进行进度监听,在适当的地方取消订阅广播 context.registerReceiver...自身没有提供实时进度的api,所以通过以下定时器获取已下载的文件大小 */ private void updateProgress() { //每隔0.5秒刷新一次进度,在适当的地方记得注销

85410

显示进度下载图片

上篇文章讲了如何实现模拟的进度条,这篇文章就来实践一下。通过下载一张图片作为案例,当然换成其它软件的链接也可以,把保存的文件后缀名改成相应的内容就可以。 ? ?...下载图片 利用with open方法将图片的内容r.content写入img.jpg中,模式要用wb,表示二进制格式写入。 ?...加上进度条 接下来就可以把之前的进度条内容搬过来了。因为有实际内容了,不需要再去用循环模拟了。a表示已经下载的,b表示剩余未下载的,c表示下载的和总的比例,最后格式化输出就可以了 ?...丰富进度条 上面的进度条已经实现最核心的功能了,下载速度,大小,所剩时间可以自己去计算,放到显示里面就可以了。 ? ? 加上剩余时间。 ?...总结 进度条原理很简单,分别是下载内容,未下载内容,总内容大小的关系,如果还要算速度和时间,那就再就加入一个计时功能,最后可以尝试将其封装成也给模块函数,以后只要传入参数就可以重复使用了。

3.7K20

Retrofit实现带进度下载

最近项目中遇到了下载视频和图片文件的需求(还有上传视频和图片的需求,我会在下篇博客中讲解),我第一反应是用retrofit做呀,so easy!产品接着说,要带下载进度条哦!...我一想,retrofit好像并没有给我们提供显示下载进度的接口,哎呀,看来还是得自己个儿整整喽!接下来,我把自己实现Retrofit带进度下载文件的流程分享给大家。...效果图 在demo中我分别实现了视频和图片的下载,并附带有下载进度显示,视频下载完成后运用exo播放器直接播放的,图片只是用Glide简单展示了一下。好了,我们步入正题吧!...、下载进度下载结束和下载失败等四个方法。...其中我们在下载进度的回调中返回进度的百分比,在此可以将进度显示在控件上;在下载结束的回调中返回下载至本地的文件路径,在此可直接对下载完成的文件进行操作。如果你还有一些个性化的需求,可以自行添加。

1K20

Flutter 下载器 | flutter_download_manager源码解析

flutter_download_manager 简介 地址: flutter_download_manager 版本: 0.5.4 特点: 纯 Dart 实现 通过 url 管理下载任务 能够通知状态和进度更改...status.addListener(() { print(task.status.value); }); 获取下载进度 DownloadTask?...(url5); 暂停下载任务 var dl = DownloadManager(); dl.pauseDownload(url5); 恢复下载任务 var dl = DownloadManager();...dl.resumeDownload(url5); 效果展示 源码解析 类图 任务管理类:DownloadManager 整个核心就类 DownloadManager, 而每个下载任务的抽象是 DownloadTask...任务的抽象:DownloadTask 重点说下 status 和 progress 字段设计,不论是批量下载还是单任务下载进度监听不是通过传统传入一个回调给 download 或者 addDownload

94220

Glide的图片下载进度

前言 好久没有写简书了,都荒废了自己,今天整理了一下以前的代码和目前现有的项目代码,看了关于gradle图片下载进度的代码,这边整理了Glide3.7.0和Glide4.8.0的图片下载进度的实现 思路分析...Glide下载进度获取是通过对http请求的Interceptor拦截器进行获取responsebody的获取返回的长度和总长度,进行计算,然后通过接口回调给UI层。...Glide的3.7.0版本的图片下载进度实现 gradle的依赖引用 implementation 'com.github.bumptech.glide:glide:3.7.0' implementation...进行对响应数据长度的计算(Glide使用的是okhttp的网络请求库),在这边其实Source相当于一个输入流InputStream,ProgressSource这个内部类就是对响应数据流进行做计算处理,得出图片下载进度....download(glideUrl) .submit(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).get(); 结语 以上就是个人在做glide实现图片下载带有进度的全部内容

1.7K41

【r_upgrade】快来升级你的Flutter应用

,下面是使用介绍 r_upgrade Android和IOS的升级应用插件==Flutter应用升级插件 网页链接形式升级 apk下载形式升级使用Service或者DownloadManager 跳转到应用商店升级...跳转成功':'跳转失败'}'); } 2.通过下载链接进行apk下载 1.添加升级下载进度监听 RUpgrade.stream.listen((DownloadInfo info){ ///...current_length ( progress已弃用 ) 当前已下载的大小 (bytes) (double) percent 当前下载进度(0-100) (double) planTime 计划下载完成所需时间...: true: 调用系统的DownloadManager进行下载 优势:接入简单,无需担心操作,下载全由系统管理 劣势:无法使用http方式进行下载,无法在下载过程中点击通知栏进行暂停,无法根据有无网络进行暂停和继续下载...不支持http下载下载手动暂停,断点续传等,建议使用) void upgrade() async { int id = await RUpgrade.upgrade(

1.4K50

Flutter 下载篇 - 叁 | 网络库切换实践与思考

如果传,会浪费带宽和时间。在处理大文件时,内存压力会增大,中断的可能性也会增加。此外,用户界面可能会出现进度条跳跃的问题。 第27-45行:将下载流写入传入的 savepath 文件中。...遇到官方问题 完成上述实践后,发现官方进度错误BUG。如果多次暂停、取消,然后再恢复下载,会出现进度起始位置错误的问题。...从下载框架角度说,类之间依赖关系应该如下: DownloadManager依赖下载器,下载器依赖网络库。...三者间交互关系如下: DownloadManager 通过维护列表来管理内部任务的增删改查。每个任务对应一个下载过程。...总结 本文介绍了Flutter下载功能的实践和探索,包括网络库的切换和优化。使用了httpclient实现网络库,并解决了官方进度错误BUG。

73220
领券