【问题标题】:Android Retrofit: use or not use RxAndroid?Android 改造:使用还是不使用 RxAndroid?
【发布时间】:2017-04-26 14:55:32
【问题描述】:

我一直在寻找实现API-calls 的最佳方式,为此,我对主要方式进行了一些研究,例如RetrofitVolleyIon 等,我确信Retrofit 真的是最好的。我已经习惯用这个很久了,我应该继续过我的生活,我的脑海里对我过去的选择充满了快乐,但是,我只用Retrofit,它叫治疗,在哪里我通常做我的事,对待successerror,它工作正常,GG。所以,我在Retrofit 上听说了RxAndroid,然后我对自己产生了极大的怀疑:

我应该实现RxAndroid吗?

这会让我的项目变得更好吗?使用(或不使用)它有什么好处?

【问题讨论】:

  • “这会让我的项目变得更好吗?”也许,但也许不是。如果您不利用额外的可能性来发挥自己的优势,它可能会使您的代码变得更糟。毕竟这增加了复杂性。-

标签: android api retrofit rx-java retrofit2


【解决方案1】:

我猜你在这种情况下可能是指RxJava。 RxJava 和 Retrofit 很好地结合在一起......特别是如果你需要例如组合不同请求的执行。例如,假设您有关注,并且您想在调用getData之前获取令牌

public interface SomeRetrofitServiceInterface {
    @POST("issueToken")
    Observable<String>  issueToken(@Query("subscriptionKey") String subscriptonKey);

    @GET("getSomeData")
    Observable<MyPojo> getData(@Query("token") String token);
}

这就是使用 RxJava 的方法

service.issueToken(subscriptionKey)
                .subscribeOn(Schedulers.io())
                .flatMap(token -> service.getData(token));

另一个用例可能是您希望并行运行多个请求(例如,使用 Observable.zip() 并等待它们全部完成,然后再进行进一步处理。

【讨论】:

    【解决方案2】:

    如果您已经熟悉整个 RX 的思维方式,我会说:试一试。对我来说,它使我的应用程序中的事情变得更容易,但影响取决于你的应用程序的设置方式。

    如果您对 RX 不熟悉,我建议您首先尝试掌握其背后的想法,将其合并到您应用中的一些小部分中,而不是将其与 Retrofit 结合使用。

    最后但同样重要的是:不要因为它很流行而使用它,首先尝试一下,如果您发现它对您的代码有价值,请继续使用它。

    【讨论】:

      【解决方案3】:

      RxJava 就像每个库一样,对应用程序的性能和大小都有相同的负面影响。在这种情况下,开销并不大。 RxJava 很简单,可以提高代码的质量。当您开始使用它时,您将在所有项目中使用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-08
        • 1970-01-01
        • 2016-11-13
        • 1970-01-01
        • 1970-01-01
        • 2015-11-05
        相关资源
        最近更新 更多