Android 与当地服务部门沟通进展情况
我正在构建的应用程序使用本地Android 与当地服务部门沟通进展情况,android,Android,我正在构建的应用程序使用本地服务将文件从web下载到手机的SD卡。在这个应用程序中,用户可以浏览书籍列表,并在线阅读。用户还可以下载一本书的pdf副本供脱机查看 为了处理下载,我使用了本地绑定的服务。我不希望此服务一直运行,只在下载文件时运行。因此,服务可以在其任务完成后自行关闭,我没有绑定到该服务,而是通过传递到Context.startService的Intent发送“排队下载”命令 列表中显示了可供下载的书籍。用户可以通过单击列表中的某一行来选择下载书籍。下载时,我需要在实际图书列表行上使
服务
将文件从web下载到手机的SD卡。在这个应用程序中,用户可以浏览书籍列表,并在线阅读。用户还可以下载一本书的pdf
副本供脱机查看
为了处理下载,我使用了本地绑定的服务
。我不希望此服务一直运行,只在下载文件时运行。因此,服务
可以在其任务完成后自行关闭,我没有绑定到该服务,而是通过传递到Context.startService
的Intent
发送“排队下载”命令
列表中显示了可供下载的书籍。用户可以通过单击列表中的某一行来选择下载书籍。下载时,我需要在实际图书列表行上使用ProgressBar
显示下载进度。我还需要在行上显示一本书是否排队等待下载,或者它的下载是否已完成或失败。这些书可以在整个应用程序的不同活动中显示——例如,在搜索中,或者在用户最喜欢的书列表中。当书籍显示在不同的位置时,它们不是相同的对象,但它们通过其图书ID
进行唯一标识
因为我不想从每个活动
绑定到服务,所以我的初步计划是在服务
类本身上使用一个公共静态最终哈希映射
,以包含bookId
到下载状态的映射,以及排队、下载、取消等的枚举,显示时,将检查此静态HashMap,如果bookId在映射中,则检索并显示其状态。我并不特别喜欢这个想法,但目前这是我唯一能想到的从服务中检索状态的方法,而不必绑定并启动它
此外,我需要从服务
检索给定图书ID
的下载进度百分比(如果是活动下载)。同样,我不希望绑定到每个活动中的服务,因此我不确定如何从服务中检索当前进度。我目前的计划是使用某种单例中介,服务
将向其推送更新,并且视图可以从中读取。但我对这个想法不太满意
我希望避免从每个活动绑定到服务
的原因是1。)我已经在运行另一个服务
,2。)绑定是冗长的,我希望避免传递对服务
的引用(但无可否认,这不是一个太大的问题)
也许绑定到本地服务
的成本不足以保证这种其他设置?我是否应该关心从每个活动
绑定到它?也许这不是问题
我想避免捆绑的原因
从每个活动到服务都是
1.)我已经在运行另一项服务
然后考虑两者的结合。
2.)绑定是冗长的,我希望避免传递
对服务的引用
每个活动都应该有自己与服务的连接
可能绑定到本地服务
还不足以证明这一点
其他设置
绑定到本地服务的行为非常便宜。我正在考虑合并这两个服务,但其中一个是前台服务,而这一个不需要。至于传递连接,我指的是在活动中传递到其视图并单击侦听器。“我正在考虑将这两个服务结合起来,但其中一个是前台服务,而这一个不需要。”啊,这是一个很好的逻辑。“至于传递连接,我指的是在活动中传递到其视图并单击侦听器。”好的。我通常有听众,这类人是活动的私人内部类,所以不需要“传递”。