在 Reactive Java 中,我们被告知 .subscribe()
调用返回“订阅引用”。但是Subscription
是一个接口(interface),而不是一个类。那么我们交给什么样的对象来实现这个接口(interface)呢?我们对此有控制权吗?
Subscriptions
类可以创建并返回几种不同类型的 Subscription
,但是我们如何使用它们呢?如果我写
Subscription mSub = Subscriptions.create(<some Action0>);
mSub = someObservable.subscribe();
我刚刚创建的 Subscription
不会被 .subscribe()
调用返回的内容覆盖吗?如何使用您创建的订阅
?
(在某种程度上相关的注释中,Subscriptions.unsubscribed()
的意义是什么,它“返回一个订阅,取消订阅不会执行任何操作,因为它已经取消订阅了。哈?”
最佳答案
简短回答:你不应该关心。
更长的答案:订阅为您提供两种方法:
unsubscribe()
,这会导致订阅终止。isUnsubscribed()
,它检查是否已经发生了。
您可以使用这些方法 a) 检查 Observable 链是否终止,b) 使其提前终止,例如,如果用户切换到不同的 Activity。
就是这样。您不会故意接触内部结构。另外,您是否注意到没有 resubscribe
方法?这是因为如果你想重新启动操作,你需要重新订阅 Observable,给你一个新的订阅。
关于java - Reactive Java Subscription 是一个什么样的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42349284/