我正在开发一个经常使用Rx Java订阅和可观察对象的项目,我对这个概念很新。我想知道处理它们的最佳做法是什么。目前,我只是将var scrollBox=document.createElement('div data-simplebar');
函数中的订阅/可观察对象置零,以及使用带有doOnUnsubscribe()
的{{1}}来触发对可观察对象的断开连接。这是清理这些参考文献的正确方法还是有更好的方法?谢谢!
答案 0 :(得分:4)
当订阅自然结束时,通过onCompleted()
或onError()
,订阅会被清除。如果您使用:
Subscription sub = observable.subscribe( value -> doSomeStuff() );
然后调用sub.unsubscribe()
将释放资源。
您还可以使用CompositeSubscription
来保留所有未完成的订阅。当您对复合材料执行clear()
时,将取消订阅并删除所有包含的订阅;当你从复合中unsubscribe()
时,所有包含的订阅都将被取消订阅,然后复合订阅本身将被取消订阅。
淘汰资源可能无法满足您的需求,也不需要,尤其是如果有多个订阅。