RxJava 和不受监控的下载

Posted

技术标签:

【中文标题】RxJava 和不受监控的下载【英文标题】:RxJava and unmonitored download 【发布时间】:2015-06-26 10:56:52 【问题描述】:

我将如何在 RxJava 中处理这个问题(我只是很难学习这个库)。

我有我想要在我的 android 应用程序开始时下载的 URL,我希望它启动,即使没有人订阅它。下载可能需要一定的时间,因此用户最终可能会访问依赖于该 url 下载的页面,因此我希望 Activity/Fragment 订阅该未完成的 Observable。

我打算用一个简单的方法来跟踪优秀的 Observable

Map<String, Observable>

所以观察者(活动/片段)可以知道它的 url/字符串是否不在地图中,那么他们的东西已经完成了。我正在考虑使用 PublishSubject,但根据一次谈话,我听说他们建议不要使用 Subject's,因为你应该先学会使用 Observable,然后再使用“快捷方式”。

【问题讨论】:

【参考方案1】:

我会用PublishSubject 来解决这个问题。

PublishSubject<DownloadResult> download = PublishSubject.create();

当您的应用启动时,您开始下载,使用带有.subscribeOn(Schedulers.io) 的经典 RxJava 例程。当下载结束时,您将结果推送PublishSubject

download.onNext(downloadResult);
download.onCompleted();

您的活动/片段Observers 将订阅PublishSubject 并在下载完成时收到通知。小菜一碟;-)

【讨论】:

以上是关于RxJava 和不受监控的下载的主要内容,如果未能解决你的问题,请参考以下文章

监控平台实施方案

Zabbix监控解决方案

markdown 反应受控和不受控制的组件

Zabbix基于Proxy分布式部署实现Web监控

Spring oauth2 指定受保护和不受保护的资源

废气处理设备远程监控