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.)绑定是冗长的,我希望避免传递 对服务的引用

每个活动都应该有自己与服务的连接

可能绑定到本地服务 还不足以证明这一点 其他设置


绑定到本地服务的行为非常便宜。

我正在考虑合并这两个服务,但其中一个是前台服务,而这一个不需要。至于传递连接,我指的是在活动中传递到其视图并单击侦听器。“我正在考虑将这两个服务结合起来,但其中一个是前台服务,而这一个不需要。”啊,这是一个很好的逻辑。“至于传递连接,我指的是在活动中传递到其视图并单击侦听器。”好的。我通常有听众,这类人是活动的私人内部类,所以不需要“传递”。