Download模块 (十七)

本文详细介绍了Android中DownloadProxy如何与DownloadService交互,包括启动、停止Service,以及在不同场景下的处理策略。DownloadProxy在确保Service启动并连接后,会发送INIT命令,恢复Service中的下载任务,并在连接断开时将任务保存,等待重新连接后继续执行。此外,还讨论了下载任务的创建、暂停、恢复和删除过程。
摘要由CSDN通过智能技术生成
Download模块 (十七)


DownloadProxy是和DownloadService配对存在的,负责维护mainActivity和downloadService的通信交互。


<1>DownloadProxy不是一构造就立刻启动DownloadService,而是将启动Service放在一个init函数中,
出于防止反复初始化,增加一个flag标记,如果当前还没有bind DownloadService,那么如果这时候检测到DownloadService
还在运行,可以直接bind<通过ActivityManager的getRunningServices来获得运行的进程,然后做对比>。
如果没有在运行,而且还有没有完成的下载任务,在WIFI连接情况下,会弹出一个对话框来询问用户是否原因继续下载。


<2>因为需要调用到DownloadService的onStartCommand来传递一些信息,因此还需要运行一次startService,可以判断其返回值,
如果Service已经start了,那么会返回不为null的componentName,如果返回null,说明Service没起来,return。
然后再尝试bindService(
Context.BIND_ABOVE_CLIENT<indicates that the client application
     binding to this service considers the service to be more important than
     * the app itself, 没有在Service进行startForegrou
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值