RxJava和不受监控的下载

时间:2015-06-26 10:56:52

标签: android rx-java

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

我有我想要在我的Android应用程序开始时下载的URL,即使没有人订阅它我也希望它开始。下载可能需要一定的时间,因此用户可能最终会依赖于该网址的下载,因此我希望Activity / Fragment订阅该优秀的Observable。

我打算用简单的

跟踪优秀的Observable
{{ theme }}

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

2 个答案:

答案 0 :(得分:0)

以下是仅执行一次的异步下载示例:with AsyncSubject and ConcurrentHashMap

答案 1 :(得分:0)

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

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

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

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

您的活动/片段Observer将订阅PublishSubject,并在下载完成后收到通知。一块蛋糕; - )