改造可观测量和取消

Fin*_*ive 5 android retrofit

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

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

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

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

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

小智 0

据我所知,是的,取消订阅是更好的方法。如果您尚未将RxJava作为依赖项安装,我建议您这样做,这会使管理Observables更加容易。RxJava 也与 Retrofit 完全兼容。

Subscription然后您可以在方法中取消订阅,onDestroy如下所示:

@Override
public void onDestroy() {
   if (bookingSubscription != null) {
       bookingSubscription.unsubscribe();
   }
   super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)

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