阅读来自this article的主题#2,很明显,正确使用create()
可能涉及几个问题,例如:
但是,看到来自RxJava2开发人员的示例,比如this one,在没有任何进一步检查或警告的情况下使用create()
,这让我想知道create()
的问题有多深
如果我想要可以随时推送一个值的Subject
,就像那个链接中的那个:
Subject<Integer> subject = BehaviorSubject.<Integer>create().toSerialized();
Observable<Integer> observable = subject.observeOn(AndroidSchedulers.mainThread());
observable.subscribe(System.out::println);
subject.onNext(1)
使用 create()
是可以的,还是也很危险?如何知道我们什么时候需要保护 create()
排放,什么时候我们不需要保护?
发布于 2018-10-18 06:51:34
Observable.create(OnSubscribe)
与BehaviorSubject.create()
的create不同。后者始终是安全的,因为它创建了一个最终的和预先实现的BehaviorSubject
,这是一个热 Observable
。
Observable.create(OnSubscribe)
用于从头开始设置cold Observable
,并要求开发人员正确实现整个可观察协议。它很容易出错,而且在1.x的后期版本中,create(OnSubscribe)
方法已被弃用。有关更多详细信息,请阅读其javadoc。
在RxJava 2中,两种类型的create
方法都是安全的。
https://stackoverflow.com/questions/52863154
复制相似问题