下载管理器,有个哥们写得很好了http://www.trinea.cn/android/android-downloadmanager/
- 下载后台通知
- 下载管理器内容交互
最近对内部业务逻辑整理了一下
a.处理正在下载的内容
b.处理下载完成的内容
对于下载业务,用户对事件的敏感程度分为:
a类:是否开始下载了,下载是否完成了
b类:下载进度如何,大概还有多长时间下载完成
1
正在下载是一个比较耗时的操作,我们不会给到一个屏幕一直展示下载进度,但我们仍然希望给到用户提示。
android 的notification就是专门解决这种问题而产生的,在systemui里面专门有块区域来显示通知,它占用地方比较小,在最小化打扰用户操作的情况下给予提示。
通知栏根据设计,目前显示采用的策略是:
对于下载完成,每个下载做出提示;点击通知,它能回到发起下载的应用
对于正在下载有一个的情况,显示具体进度,有多个正在下载显示有几个下载;
点击采用的策略是:
下载完成通知的点击后回到下载provider的DownloadReceiver中;在广播接收器中启动下载的应用或者发送DownloadManager.ACTION_NOTIFICATION_CLICKED广播到对应的应用。
正在下载通知点击后直接进入下载管理器界面
下载管理器管理了一系列下载,他组织并代理了其他单独应用程序的下载,包括下载控制(暂停,继续,结束),下载内容打开;有时候用户还比较关心这个内容是谁的。
对于这些,用户在下载发起时,设置策略,在这里执行。
对于下载控制,调用DownloadManager接口实现下载,下载内容通过ContentProvider监听更新