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

在安卓系统中DownloadManager没有显示进度条吗?

在安卓系统中,DownloadManager是一个系统提供的下载管理器,用于在后台下载文件。默认情况下,DownloadManager并不会显示下载进度条。

要在安卓系统中显示下载进度条,可以通过以下步骤实现:

  1. 创建一个自定义的下载通知栏,用于显示下载进度条和其他相关信息。
  2. 注册一个BroadcastReceiver来接收DownloadManager的下载状态变化广播。
  3. 在BroadcastReceiver中处理下载状态变化的回调,更新下载进度条的显示。

具体实现步骤如下:

  1. 创建一个自定义的通知布局文件,包含一个进度条和其他相关信息,例如文件名、下载速度等。
  2. 在应用的代码中,使用DownloadManager发起下载请求,并获取到下载任务的ID。
  3. 注册一个BroadcastReceiver来接收DownloadManager的下载状态变化广播。可以在Activity或者Service中注册。
  4. 在BroadcastReceiver中的onReceive()方法中,根据接收到的广播信息判断下载状态,如果是下载中状态,则获取下载进度并更新通知栏中的进度条。
  5. 在下载完成或者下载失败时,更新通知栏中的相关信息,例如显示下载完成或者下载失败的提示。

以下是一个示例代码,演示了如何实现在安卓系统中显示下载进度条:

代码语言:txt
复制
// 创建一个自定义的通知布局文件,例如 notification_download.xml

// 在应用的代码中发起下载请求
DownloadManager downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse("下载链接"));
long downloadId = downloadManager.enqueue(request);

// 注册一个BroadcastReceiver来接收DownloadManager的下载状态变化广播
BroadcastReceiver downloadReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
            // 下载完成
            long completedDownloadId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
            if (completedDownloadId == downloadId) {
                // 更新通知栏中的相关信息,例如显示下载完成的提示
            }
        } else if (DownloadManager.ACTION_NOTIFICATION_CLICKED.equals(action)) {
            // 用户点击了通知栏,可以打开下载文件或者跳转到应用界面
        } else if (DownloadManager.ACTION_DOWNLOAD_STATUS_CHANGED.equals(action)) {
            // 下载状态变化
            DownloadManager.Query query = new DownloadManager.Query();
            query.setFilterById(downloadId);
            Cursor cursor = downloadManager.query(query);
            if (cursor.moveToFirst()) {
                int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
                if (status == DownloadManager.STATUS_RUNNING) {
                    // 下载中,获取下载进度并更新通知栏中的进度条
                    int totalSize = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES));
                    int downloadedSize = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR));
                    int progress = (int) (downloadedSize * 100.0 / totalSize);
                    // 更新通知栏中的进度条
                }
            }
            cursor.close();
        }
    }
};

// 注册广播接收器
registerReceiver(downloadReceiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
registerReceiver(downloadReceiver, new IntentFilter(DownloadManager.ACTION_NOTIFICATION_CLICKED));
registerReceiver(downloadReceiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_STATUS_CHANGED));

以上代码仅为示例,具体实现方式可以根据实际需求进行调整。在实际开发中,可以根据下载进度的变化来更新通知栏中的进度条,并提供相应的交互功能,例如取消下载、暂停下载等。

腾讯云相关产品中,可以使用腾讯移动直播(https://cloud.tencent.com/product/mlvb)来实现音视频的直播功能,腾讯云对象存储(https://cloud.tencent.com/product/cos)来存储下载的文件,腾讯云云服务器(https://cloud.tencent.com/product/cvm)来部署应用程序等。请根据具体需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android--SVG系统的应用

,性能高等优势,谷歌Android5.0引进了SVG,并转化为Vector,Android中指的是Vector Drawable,也就是Android的矢量图,可以说Vector就是Android...2.1以上的所有系统,只需要引用com.android.support:appcompat-v7:23.2.0以上的版本就可以了。...Vector 语法简介 通过使用它的Path标签,几乎可以实现SVG的其它所有标签,虽然可能会复杂一点,但这些东西都是可以通过工具来完成的,所以,不用担心写起来会很复杂。...接下来是我们程序员需要注意的地方,工程中使用Vector Drawable兼容5.0以下的版本方法 1、使用Android Studio 2.2以上的版本,gradle版本2.0以上 1.1、gradle...添加 defaultConfig { vectorDrawables.useSupportLibrary = true } 1.2、gradle添加 compile

2.8K20

如果华为鸿蒙操作系统上市并没有系统好用,大家会去支持

,鸿蒙系统国内推广的难度会小很多,如果没有谷歌公司的支持,鸿蒙系统在国外推广起来的难度应该非常大, 大家买手机常见的几个功能社交,地图,YouTube,邮箱,浏览器这几块谷歌做了大量的工作,也是谷歌控制生态链的关键所在...客观上讲鸿蒙系统拓展国际市场的难度会大不少,所以就贸易对抗对于企业来讲都没有多大的好处,华为公司如果挺过去了就是一次大的升级,后续谁再想卡脖子基本上已经是不可能的事情了,说到版本的发展历程也是非常艰辛...,最早的版本无论从性能还是功能的支持上都差的很远,但谷歌公司一直在技术上不断更新,成就了现在的生态链,在这期间还是很多人拿着和苹果手机进行比较,随着时间的推移这种差距也是逐渐缩小,对于...java虚拟机的优化一直没有停歇过,同时手机的硬件系统配置越来越高,现在高端的手机已经和IOS系统差距不是那么遥远了。...毕竟苹果的独立系统软硬件一体化这种优势不是一般的系统能比的,鸿蒙系统是不是开源现在还没有定论,貌似走的路线可能性会更大一些,华为公司已经终端领域积累了很多年,并且研发上投入一直高居国内首位,很多人纳闷华为这么大的公司为什么不上市

98940

如果华为鸿蒙新系统没有或苹果好用,你会购买华为鸿蒙手机

所以对华为公司的打压也是美国采用了举国之力,但打压已经快一年了2019年华为的财报可以看出来重压之下的华为公司依然保持着20%的增长率,可见华为公司平时宣扬的狼性文化战斗力不是吹出来的,但华为公司也要面临现实的打压...现在民内民众对于拥有国产操作系统这件事情还是相当的膨胀,平心而论现在的国产系统几乎都是linux系统上定制开发的,也不是纯正意义上的自主化产品,而且华为构建的鸿蒙系统本来先提前准备着等待万物互联时代真正意义上推广出来...,但因为突然被打压只能先召开发布会先把不是很成熟的鸿蒙系统拿出来,鸿蒙系统即使从技术角度上已经成熟了,但是推广起来也是极大的难题毕竟现在的系统和IOS系统起码从当前的角度出发还是相当给力,而且大众已经接受了这种生态的存在了...如果单纯从爱国的角度出发,如果华为公司推出鸿蒙系统,从职业的角度出发还是会积极参与到具体的开发中去,同时还可以拓展自己的知识面,所以支持一下也是应该的,至于系统完善也是需要时间的,系统早期版本性能还是非常差...,但是谷歌不断进行优化终于经过几年的整理之后系统的性能已经比当初提升了太多,鸿蒙系统未来推广过程也同样会遇到这种问题,都需要时间来打磨,所以支持一下国产的系统还是非常有必要的,希望能帮到你。

63220

Android7.0自动更新适配 包解析异常

Android7.0的手机上,自动更新的时候出现包解析异常,在其他的手机上没有这个问题。 原因: Android7.0引入私有目录被限制访问和StrictMode API 。...私有目录被限制访问是指在Android7.0为了提高应用的安全性,7.0上应用私有目录将被限制访问。StrictMode API是指禁止向你的应用外公开 file:// URI。...</provider 第二步:res/xml创建file_paths.xml文件。...}); } alertDialog1 = dialog.create(); alertDialog1.setCancelable(false); alertDialog1.show(); } /** 显示进度条对话框...DownloadManager.Request.NETWORK_WIFI); // 显示下载界面 down.setVisibleInDownloadsUi(true); // 设置下载路径和文件名 down.setDestinationInExternalPublicDir

52030

《Android Studio开发实战 从零基础到App上线》本书内容问题答疑

1、关于学习本书之前是否需要Java基础 问题:看开发教程书需要很扎实的java基础?...回答:本书的零基础指的是零基础,不是Java零基础,所以看本书之前需要一定的Java基础,基本的变量声明、控制语句、类和对象这三块是必需的;另外最好还掌握字符串模板、容器、接口这三块;如果能了解静态...6、关于第4章和第5章的购物车商品图片在部分手机上无法显示的问题 问题:为什么第四章的购物车显示不了商品图片? 回答:这是Android7.0默认不分配sd卡存储权限导致的。...即使你设置开启存储权限,重启app也看不到购物车商品图片,这是因为代码有判断SharedPreferences保存的first数值,如果不是首次运行则不进行图片加载操作。...如果只勾选V1的话,能上架到商店? ? 回答:打包时出现选项V1和V2,这是Android Studio2.3之后新增的功能,本书基于Android Studio2.2,当时还没有V1和V2。

1.1K30

Android开发工具类之DownloadManagerPro

言归正传,今天我们来详细的讲一下DownloadManagerPro这个工具类,说白了,这个工具类就是Android系统下载管理DownloadManager的一个增强类,提供了一些增强方法。...或许大家不太了解这个系统自带的DownloadManager这个类,我先做一个简单介绍吧。...DownloadManager系统开放给第三方应用使用的类,包含两个静态内部类DownloadManager.Query和DownloadManager.Request。...getUri(long downloadId) 这个方法就是传入下载id,返回下载文件的uri 9、static boolean isExistPauseAndResumeMethod() 这个方法就是判断DownloadManager...是否存在停止下载的和重新下载的方法 10、int pauseDownload(long... ids) 这个方法就是传入多参数的id,停止响应下载id的下载 11、int resumeDownload

65890

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

,并没有发出广播消息。...如果我们要控制此时的点击行为,可以Request通过setMimeType方法设置媒体类型,这样Android就会按照这个类型做对应的浏览处理。...后来实际开发测试发现,DownloadManager其实比较智能,当网络一直是允许类型时,任务会一直下载;当网络断开或者不在允许范围内时,任务会自动暂停下载;只要网络连上或者切换到允许范围内,那么任务会自动恢复下载...自定义进度条 文件下载和上传都经常用到进度条,可是Android自带的ProgressBar无法显示进度百分比的文本。...首先在自定义类CustomProgressBar声明一个画笔与百分比文本,然后提供百分比文本的设置和获取方法,最后重写onDraw方法,控件中央使用drawText函数画上百分比文本。

4.9K41

挖洞经验 | 通过下载功能实现Facebook应用任意代码执行

如果用户直接从群组帖子中下载文件,那么将通过内置名为DownloadManager服务下载,据我所知,这是一种安全的文件下载方法。...如果用户要从群组的文件标签( Files Tab)中下载文件,那么Facebook应用将会获取文件,然后将其无过滤措施地保存到下载目录。...绕过安全措施 经过多次的Payload构造,也很难绕过安全过滤措施,最后,我回到了Facebook应用本身,添加文件处终有发现!...从这个添加文件功能处,首先,我发现可以从Facebook应用中上传文件。因此,接下来我从手机设置Burp代理,拦截捕获文件上传请求,把其中的文件名filename更改为../../.....然后,我尝试群组发贴来下载该文件,但是Facebook应用的DownloadManger服务是安全的,无法找到破绽。

1.4K10

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

image 介绍 移动开发过程,应用升级是必不可少的一个环节,所以,r_upgrade应用升级插件就出现了,这里先鼓掌欢迎??...DownloadManager进行下载 优势:接入简单,无需担心操作,下载全由系统管理 劣势:无法使用http方式进行下载,无法在下载过程中点击通知栏进行暂停,无法根据有无网络进行暂停和继续下载,适配机型问题等...// [useDownloadManager] 是否使用DownloadManager,默认不使用(DownloadManager不支持http下载,下载手动暂停,断点续传等,不建议使用)...应用,请确保AndroidManifest.xml声明以下权限,并在6.0系统上进行动态授权,不然会调用升级方法将抛出权限异常 <uses-permission android:name...平台通知栏 如果你想自定义通知栏显示的内容, 可以这样做, 修改或添加文件路径为project/android/app/main/res/r_upgrade_value.xml,添加下面代码 <?

1.5K50

40条微信小程序技巧分享

A:的微信升级到6.5.2及其以上版本。 Q:小程序SVG支持? A:image的src放远程svg可以,background-image里也可以。...1、能够只隐藏进度条跟时间?2、现在iOS平台上的时间显示是0:00,但是android上会显示错误码,能够通过什么设置修改? A:1:下个版本会修改这里的交互,不显示进度条和时间。...Q:请问小程序页内支持长按保存图片或分享图片? A:目前没有这个功能。 Q:关于swiper的current问题。...Q:小程序体验者卡在加载页面进不去,IOS可以进去。 A:这是android微信客户端旧版本的bug, 请下载最新版本的 6.5.3 客户端。 Q:请问目前微信小程序支持蓝牙?...没有同步接口。 Q:最新mac版工具不可用,进来就出现获取appservice 失败。 A:工具设置中选择直接链接网络 。或者 系统的代理软件设置工具直接链接网络。

1.6K30

开发微信小程序,必知的40个小技巧

A:的微信升级到6.5.2及其以上版本。 Q:小程序SVG支持? A:image的src放远程svg可以,background-image里也可以。...1、能够只隐藏进度条跟时间?2、现在iOS平台上的时间显示是0:00,但是android上会显示错误码,能够通过什么设置修改? A:1:下个版本会修改这里的交互,不显示进度条和时间。...Q:请问小程序页内支持长按保存图片或分享图片? A:目前没有这个功能。 Q:关于swiper的current问题。...Q:小程序体验者卡在加载页面进不去,IOS可以进去。 A:这是android微信客户端旧版本的bug, 请下载最新版本的 6.5.3 客户端。 Q:请问目前微信小程序支持蓝牙?...没有同步接口。 Q:最新mac版工具不可用,进来就出现获取appservice 失败。 A:工具设置中选择直接链接网络 。或者 系统的代理软件设置工具直接链接网络。

2.4K30

C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件..很很很很重要..),附源码

然后我们到的平台下,添加自定义的渲染器.,记得,是的平台,在这个类库下: ?...我们可以看到,,它就继承了widget的原生进度条,那么,原生进度条的所有属性,我们就都是可以用的了. 比如我们代码写的 "ScaleY" 这种属性和SetPadding这种方法....,所以前面我一直强调的,有些东西 你找了(IOS)的解决方案,就同样找到了Xamarin的 我这里虽然没有IOS的环境,但是我们也可以到IOS里面看看ProgressBarRenderer继承了什么...熟悉IOS开发的同学应该很清楚了..Uikit..就是IOS的用户界面 在上面的代码,我们针对平台,修改了他的Y轴高度和内边距的值,我们如何使用呢?...我们可以看到,虽然我们也给了红色的背景,但是它只显示进度条中了,不会让控件很高, SetPadding起了作用. 当然,我们能操作的远远不止这些..

2.3K100

小程序开发的40个技术窍门,纯干货!

小程序开发的40个技术窍门 1 Q:为什么脚本内不能使用window等对象 A:页面的脚本逻辑是JsCore运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法脚本操作组件...A:的微信升级到6.5.2及其以上版本。 15 Q:小程序SVG支持? A:image的src放远程svg可以,background-image里也可以。...1、能够只隐藏进度条跟时间?2、现在iOS平台上的时间显示是0:00,但是android上会显示错误码,能够通过什么设置修改? A:1:下个版本会修改这里的交互,不显示进度条和时间。...30 Q:小程序体验者卡在加载页面进不去,IOS可以进去。 31 Q:请问目前微信小程序支持蓝牙? A:目前不支持。 32 Q:分享功能真机没有效果?...没有同步接口。 39 Q:最新mac版工具不可用,进来就出现获取appservice 失败。 A:工具设置中选择直接链接网络 。或者 系统的代理软件设置工具直接链接网络。

1.5K100

小程序开发的40个技术窍门,纯干货!

小程序开发的40个技术窍门 1 Q:为什么脚本内不能使用window等对象 A:页面的脚本逻辑是JsCore运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法脚本操作组件...A:的微信升级到6.5.2及其以上版本。 15 Q:小程序SVG支持? A:image的src放远程svg可以,background-image里也可以。...1、能够只隐藏进度条跟时间?2、现在iOS平台上的时间显示是0:00,但是android上会显示错误码,能够通过什么设置修改? A:1:下个版本会修改这里的交互,不显示进度条和时间。...30 Q:小程序体验者卡在加载页面进不去,IOS可以进去。 A:这是android微信客户端旧版本的bug, 请下载最新版本的 6.5.3 客户端。 31 Q:请问目前微信小程序支持蓝牙?...没有同步接口。 39 Q:最新mac版工具不可用,进来就出现获取appservice 失败。 A:工具设置中选择直接链接网络 。或者 系统的代理软件设置工具直接链接网络。

1.1K20

Android多线程下载示例详解

二、服务端准备 在这个小例子我以下载有道词典为例,在网上下载有道词典的安装包,eclipse中新建项目web,将下载的有道词典安装包放置WebContent目录下,并将项目发布到Tomcat...显示下载进度,一个TextView显示下载的百分比。...,子线程获取到的数据传递到这两个接口方法,然后在这两个接口方法通过Handler将相应的长度信息传递到主线程,更新界面显示信息,具体代码实现如下: package com.example.inter...,在这个类,定义了一系列与下载有关的实例变量来控制下载的数据,同时通过自定义监听器ProgressBarListener的void getDownload(int length)方法来跟新界面显示的进度信息...,找到页面的各个控件,实现Button按钮的onClick事件,onClick事件开启一个线程进行下载操作,同时子线程获取到的数据,通过handler与Message机制传递到主线程,更新界面显示

1.2K10

极乐问答No.2 | 微信小程序开发40问

A:的微信升级到6.5.2及其以上版本。 Q15:小程序SVG支持? A:image的src放远程svg可以,background-image里也可以。...1、能够只隐藏进度条跟时间?2、现在iOS平台上的时间显示是0:00,但是android上会显示错误码,能够通过什么设置修改? A:1:下个版本会修改这里的交互,不显示进度条和时间。...Q26:请问小程序页内支持长按保存图片或分享图片? A:目前没有这个功能。 Q27:关于swiper的current问题。...Q30:小程序体验者卡在加载页面进不去,IOS可以进去。 A:这是android微信客户端旧版本的bug, 请下载最新版本的 6.5.3 客户端。...没有同步接口。 Q40:最新mac版工具不可用,进来就出现获取appservice 失败。 A:工具设置中选择直接链接网络 。或者 系统的代理软件设置工具直接链接网络。

1.3K80

GitHub开源基于Android系统的金属探测器

该开源项目可以让你的手机变身金属探测器,实现原理是Android手机内置磁传感器,可以通过磁传感器计算出磁感应强度,从而在一定程度上实现探测金属(仅适用于有一定磁性的金属和支持电子罗盘的手机),...演示视频如下所示: 基于Android系统的金属探测器 使用方法是:直接将手机靠近金属即可,若识别到金属软件将会震动提示你(可以设置里关闭震动),你可以在手机屏幕上看到当前传感器三轴的磁感应强度大小,...同时可以看到进度条提示。...进度条下方的图表可以更直观地显示出磁感应强度的变化,效果如下所示: ? 若发现传感器不准,探测不到金属或者一直显示探测到金属,请校准传感器,校准方法: 将手机空中画水平“8”字,如下图所示: ?...注意:该项目检测体积较大金属、电子设备较为明显,小体积金属无法很好感知到,运用此方法找男朋友私房钱易出纰漏。

49030
领券