我一直在看RxJava1 https://github.com/ReactiveX/RxJava/releases和RxJava2 https://github.com/ReactiveX/RxJava/wiki/Reactive-Streams的文档,唯一的不同之处在于RxJava 2有Java Stream。
还有什么不同的吗?
我一直在使用1.1.3版本,但我不确定是否值得迁移到RxJava2,因为我们已经在代码中使用Java8流
致以问候。
发布于 2016-07-18 06:13:32
Java1.x和2.x都被设计为Java,因此我们在任何版本中都不支持RxJava 8 6+。这是为了保持对无数Android设备和版本的支持,这些设备和版本永远不会更新到Java 8兼容的运行时。如果您需要Java8支持,可以考虑使用Pivotal中的Reactor-Core。
两者之间的主要区别是,2.x直接针对Reactive-Streams SPI,为此,它已完全从头开始重写。我们目前处于开发预览模式,您可以按照2.x branch readme中的说明进行访问。
2.x的完全重写大大提高了我们的内存消耗和性能;比较各种版本和库的here is a benchmark。
在API表面上,我们计划继续支持1.x中存在的所有运算符,并可能在1.x上的支持结束之前,用新的运算符扩展两个版本几年。
由于2.x是一个新的架构,许多依赖的库(例如Retrofit)也必须更新;这可能不会在今年8月底之前发生,或者也可能需要几个月的时间才能赶上。包含差异亮点的Here is the wiki page。
发布于 2016-08-27 20:58:47
以下是RxJava2和RxJava1之间的区别:
io.reactivex.rxjava2:rxjava:2.x.y下,类可以在maven坐标下访问从1.x切换到2.x必须重新组织它们的导入。但在没有拖尾dCompositeSubscription运算符的情况下,使用已删除的运算符FunctionFunc2 BiFunctionlimit -> onComplete -> CompositeDisposable CompositeDisposable in CompositeSubscription Subscription -> -> take in RxJava2在Reactive-Streams规范之上,RxJava 2.0已经完全从头开始重写。该规范本身是从RxJava 1.x发展而来的,并为反应式系统和库提供了一个通用的基准。
由于Reactive-Streams具有不同的体系结构,因此它要求对一些众所周知的RxJava类型进行更改。
RxJava2的性能更好和内存使用率更低优于RxJava1
[来源: https://github.com/ReactiveX/RxJava/wiki/What%27s-different-in-2.0 ]
发布于 2017-05-16 03:46:17
其中一个主要区别是.filter运算符。如文档所述:
此外,需要谓词的运算符不再使用
Func1<T, Boolean>,而是具有单独的原语返回类型Predicate<T>(由于没有自动装箱,因此允许更好的内联)。
因此,对于.filter操作符,您需要像下面的示例一样进行更改
RxTextView.textChanges(editText)
.debounce(400, TimeUnit.MILLISECONDS)
.filter(new Predicate<CharSequence>() {
@Override
public boolean lengthOk(CharSequence charSequence) {
return charSequence.length() > 3;
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(/* attach your observer */);https://stackoverflow.com/questions/38423079
复制相似问题