一、描述
让一个可连接的Observable行为像普通的Observable。
可连接的Observable (connectable Observable)与普通的Observable差不多,不过它并不会在被订阅时开始发射数据,而是直到使用了Connect操作符时才会开始。用这种方法,你可以在任何时候让一个Observable开始发射数据。
RefCount操作符把从一个可连接的Observable连接和断开的过程自动化了。它操作一个可连接的Observable,返回一个普通的Observable。当第一个订阅者订阅这个Observable时,RefCount连接到下层的可连接Observable。RefCount跟踪有多少个观察者订阅它,直到最后一个观察者完成才断开与下层可连接Observable的连接。
二、示意图
三、示例代码
1 | System.out.println("<========before refCount()=======>"); |
四、运行结果
1 | <========before refCount()=======> |
由运行结果可以看出,RefCount操作符将一个Connectable Observable 对象重新转化为一个普通的Observable对象,这时候订阅者进行订阅将会触发数据的发射。
五、更多
refCount操作符还有以下变体:
- share()
详情可查阅下面的参考资料。
六、参考资料
PS:欢迎关注 SherlockShi 个人博客