在不调用onComplete的情况下创建RX Observable是否有效



我不是Rx专家,很抱歉,如果这是一个微不足道的问题。我正在做一个轮询操作,我必须等待更新,我为此创建了Rx Observable;但是,我从不调用Complete。但在onDestroy中,我取消订阅。请看一下下面的代码。

@Reusable
class PollingExample @Inject constructor() {
var itemObservable: Observable<List<Item>>
private set
private lateinit var itemObservableEmitter: WeakReference<ObservableEmitter<List<Item>>>
init {
itemObservable = Observable.create { e -> itemObservableEmitter = WeakReference(e) }
}
fun submitData(items: List<Item>) {
itemObservableEmitter.get()?.onNext(items)
}
}

做那种有效吗

经过一些搜索,我认为只要我不想调用onError()onComplete(),就最好使用这个库https://github.com/JakeWharton/RxRelay这保证了一切都将继续工作,而不用担心意外触发终端状态

最新更新