【发布时间】:2025-11-30 16:05:02
【问题描述】:
我有一个绑定服务负责下载文件,因此它知道下载状态/进度。并且 UI(Fragment 或 Activity)必须显示/更新服务的下载进度。
其实我认为常用的方法是使用BroadcastReciever 或来自Activity 的CallBack。但我在某处听说过使用 RxJava(ReactiveX 编程)和 mediator 类(以及 Dagger 将其注入到服务和活动中),如下所述。
所以我的问题是如何用这些东西来处理 RxJava?任何代码示例?除了使用意图之外,还有其他有效的方法吗?
资源: More efficient way of updating UI from Service than intents?【看第一个答案更新】
【问题讨论】:
-
个人更喜欢使用Messenger服务:developer.android.com/reference/android/os/Messenger.html
-
我以为我在这里有一个使用 Messenger 的例子,我猜没有,但这里有一篇很好的帖子详细介绍了它的使用:*.com/questions/4300291/…
-
只使用“本地绑定服务”模式,不需要任何外部库,这是最快的解决方案
-
是的,这正是我的意思,但如果您将下载内容存储在一些 sqlite 数据库中,您可以使用 CursorLoader 来查询您的自定义 ContentProvider 并且服务更新/插入/删除您的提供程序,在此情况下不需要任何回调
-
@AmirHoseinKazemNejad 这不是你要找的东西,但也许这篇文章会启发你donnfelker.com/rxjava-with-aidl-services
标签: android android-service rx-java ui-thread rx-android