下载管理器,有个哥们写得很好了http://www.trinea.cn/android/android-downloadmanager/

  • 下载后台通知
  • 下载管理器内容交互

最近对内部业务逻辑整理了一下

a.处理正在下载的内容

b.处理下载完成的内容

对于下载业务,用户对事件的敏感程度分为:

a类:是否开始下载了,下载是否完成了

b类:下载进度如何,大概还有多长时间下载完成
1 正在下载是一个比较耗时的操作,我们不会给到一个屏幕一直展示下载进度,但我们仍然希望给到用户提示。

android 的notification就是专门解决这种问题而产生的,在systemui里面专门有块区域来显示通知,它占用地方比较小,在最小化打扰用户操作的情况下给予提示。

通知栏根据设计,目前显示采用的策略是:

对于下载完成,每个下载做出提示;点击通知,它能回到发起下载的应用

对于正在下载有一个的情况,显示具体进度,有多个正在下载显示有几个下载;

点击采用的策略是:

下载完成通知的点击后回到下载provider的DownloadReceiver中;在广播接收器中启动下载的应用或者发送DownloadManager.ACTION_NOTIFICATION_CLICKED广播到对应的应用。

正在下载通知点击后直接进入下载管理器界面

下载管理器管理了一系列下载,他组织并代理了其他单独应用程序的下载,包括下载控制(暂停,继续,结束),下载内容打开;有时候用户还比较关心这个内容是谁的。

对于这些,用户在下载发起时,设置策略,在这里执行。

对于下载控制,调用DownloadManager接口实现下载,下载内容通过ContentProvider监听更新

android download manager的更多相关文章

  1. android的download manager(1)

    android 2.3中引入了Download manager.作为一个service来优化长时间下载操作的处理.Download Manager通过处理HTTP链接.监控链接的变化和系统又一次启动来 ...

  2. Android SDK Manager 更新代理配置

    转自:http://www.cnblogs.com/tao560532/p/4483067.html 出现问题: 消除SDK更新时,有可能会出现这样的错误:Download interrupted: ...

  3. Download Manager

    从Android 2.3(API level 9)开始Android用系统服务(Service)的方式提供了Download Manager来优化处理长时间的下载操作.Download Manager ...

  4. Android SDK Manager无法更新的解决办法

    Fetching https://dl-ssl.google.com/android/repository/addons_list-1.xmlFailed to fetch URL https://d ...

  5. 运用Android ROM Manager应用安装ClockworkMod Recovery的详细教程

    在安装ClockworkMod Recovery恢复模式之前,建议先认识下Google Android平台的ClockworkMod Recovery恢复模式 对于Android ROM Manage ...

  6. Android SDK Manager 更新时的“https://dl-ssl.google.com refused”错误

    Android SDK Manager 消除SDK更新时的“https://dl-ssl.google.com refused”错误 消除SDK更新时,有可能会出现这样的错误:Download int ...

  7. Android SDK Manager 无法下载Android8.1.0(API 27) SDK Platform

    在Android SDK Manager 中安装Android 8.1.0 SDK Platform时报错导致无法安装. 错误信息:Downloading SDK Platform Android 8 ...

  8. [已解决]从微软合作伙伴资源和MSDN下载系统和软件Microsoft download Manager无效

    有个itellyou,更新了所有MSDN的软件包.如果自己有微软的注册账户,还是从微软官网下载比较好.而且对自己账户里的系统和itellyou里的做了对比.发现SHA1码不相同,估计官方分配的序列号也 ...

  9. Internet Download Manager 6.27.1 中文特别版(IDM)

    软件介绍: 软件名称:Internet Download Manager(IDM) 软件大小:5.09M软件语言:简体中文 软件官网:http://www.internetdownloadmanage ...

随机推荐

  1. Jenkins自动部署Tomcat项目

    Jenkins自动部署Tomcat项目 1.安装jenkins 插件 启动Jenkins,进入系统管理-插件管理: 选择Deploy to container Plugin 插件安装:

  2. CentOS平台部署vsftp(基于虚拟用户)

    1. 安装FTP 1 2 [root@task ~]# yum install vsftpd –y [root@task ~]# chkconfig vsftpd on          # 配置开机 ...

  3. c# 实现 java 的 System.currentTimeMillis() 值

    本文地址:http://www.cnblogs.com/jying/p/3875331.html 以下一句即可实现 java 中的 System.currentTimeMillis() 值 , , , ...

  4. VC++ MFC获取对话框上控件的位置

    CRect rect; GetDlgItem(控件ID)->GetWindowRect(&rect);//获取控件的屏幕坐标 ScreenToClient(&rect);//转换 ...

  5. Begin :SWIFT 基本语法

    国内介绍IOS书籍大多是很陈旧的代码, 2014年Apple发布了Swift语言, 毫无疑问Swift是一个强大的语言, 但是纵观国内的IOS现状,大家大多已经习惯了了OC, OC能解决的问题谁会想到 ...

  6. 利用docker compose启动gitlab及runner

    添加docker compose配置文件 新建文件docker-compose.yml,输入如下内容: gitlab: image: 'gitlab/gitlab-ce:latest' contain ...

  7. oracle 异常

    ORACLE 异常错误处理 本篇主要内容如下: 5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4  用户定义的异常处理 ...

  8. asp.net LINQ连接数据库SQL执行数据的增加、修改、删除、查询操作

    查询数据库中的数据 using System; using System.Collections.Generic; using System.Linq; using System.Web; using ...

  9. 数据库imp导表dmp的方法

    1>sqlplus / as sysdba 进入sqlplus 2>drop user USER cascade 3>create user USER IDENTIFIED BY P ...

  10. windows与linux之间文件的传输方式总结(转)

    当然,windows与linux之间文件的传输的两种方式有很多,这里就仅仅列出工作中遇到的,作为笔记: 方法一:安装SSH Secure Shell Client客户端 安装即可登录直接拖拉到linu ...