RxJava和RxAndroid - 我需要两者吗?

时间:2016-03-25 19:39:16

标签: android rx-java rx-android

有一个类似的问题here,但它并没有真正回答这个问题。

我一直在Android应用程序中使用RxJava和RxAndroid,现在该项目正常运行。

然后我删除了RxJava并且只留下了RxAndroid,项目继续工作。 但是,我不太了解RxJava和RxAndroid是否知道从长远来看是否只会遗漏RxAndroid。

我读到的关于RxAndroid的一切都是它是RxJava的扩展,但是这是一个真正的扩展,意味着RxJava拥有一些特定的东西(比如AndroidSchedulers)吗?

我还需要两个吗?是否存在保持两种依赖关系的缺点?

谢谢。

2 个答案:

答案 0 :(得分:6)

你只能声明RxAndroid,并且RxJava将被拉,因为它是一个传递依赖。

但是,您可以在RxAndroid的自述文件中找到以下注释:

  

RxAndroid版本很少见,建议您明确依赖RxJava的最新版本来修复错误和新功能。

如果您将RxJava添加到依赖项中,则可以随时升级RxJava,如果您需要一些重要的修复程序或功能,并且不需要等待RxAndroid的新版本。

答案 1 :(得分:1)

我假设您为Android项目使用Gradle构建系统,在这种情况下,您的问题实际上与使用RxJava或RxAndroid有关。

假设您的build.gradle文件中有两个依赖项:RxJava和RxAndroid。当您删除RxJava依赖项时,Gradle仍会查看RxAndroid依赖项,以确定它依赖于它的依赖性。

RxAndroid:RxJava上的1.1.0 depends:1.1.0。因此,如果您删除的行明确指定您希望在项目中使用RxJava:1.1.2,那么它将被降级回1.1.2 - > 1.1.0。