改造可观测量和取消

时间:2015-02-02 10:34:32

标签: android retrofit

有人可以确认在Observable上调用unSubscribe是否是取消请求的正确方法?

令人讨厌的是,Nexus 7会发出重复的网络请求,并且当调用的Activity被销毁时,第一次调用需要被丢弃。

通过在尝试使用它之前检查回调(我自己的)是否为空来解决这个问题。

取消订阅,似乎是一个更好的解决方案,但如果这是正确的方法,则无法找到任何信息。

我注意到Retrofit会抛出一个内部错误(InterruptedException)但是没有冒泡到我的错误回调 - 这是一件好事!

1 个答案:

答案 0 :(得分:0)

据我所知,是取消订阅是更好的方法。如果您还没有将RxJava作为依赖项安装,我建议您这样做,这样可以更轻松地管理Observables。 RxJava也与Retrofit完全兼容。

然后您可以取消订阅Subscription方法中的onDestroy,因为:

@Override
public void onDestroy() {
   if (bookingSubscription != null) {
       bookingSubscription.unsubscribe();
   }
   super.onDestroy();
}

在应用于您的场景时,使用onDestroy方法也很有用。您可以在那里取消订阅Observables