我如何在RxJava中处理这个问题(我只是很难学习这个库)。
我有我想要在我的Android应用程序开始时下载的URL,即使没有人订阅它我也希望它开始。下载可能需要一定的时间,因此用户可能最终会依赖于该网址的下载,因此我希望Activity / Fragment订阅该优秀的Observable。
我打算用简单的
跟踪优秀的Observable{{ theme }}
所以观察者(活动/片段)可以知道它的url / string是否不在地图中,那么他们的东西已经完成了。我正在考虑使用PublishSubject,但根据一个讲话,我听说他们建议不要使用Subject,因为在你做“快捷方式”之前,你应该先学会使用Observable。
答案 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
,并在下载完成后收到通知。一块蛋糕; - )