有人可以确认在Observable上调用unSubscribe是否是取消请求的正确方法?
令人讨厌的是,Nexus 7会发出重复的网络请求,并且当调用的Activity被销毁时,第一次调用需要被丢弃。
通过在尝试使用它之前检查回调(我自己的)是否为空来解决这个问题。
取消订阅,似乎是一个更好的解决方案,但如果这是正确的方法,则无法找到任何信息。
我注意到Retrofit会抛出一个内部错误(InterruptedException)但是没有冒泡到我的错误回调 - 这是一件好事!
答案 0 :(得分:0)
据我所知,是取消订阅是更好的方法。如果您还没有将RxJava作为依赖项安装,我建议您这样做,这样可以更轻松地管理Observables
。 RxJava也与Retrofit完全兼容。
然后您可以取消订阅Subscription
方法中的onDestroy
,因为:
@Override
public void onDestroy() {
if (bookingSubscription != null) {
bookingSubscription.unsubscribe();
}
super.onDestroy();
}
在应用于您的场景时,使用onDestroy
方法也很有用。您可以在那里取消订阅Observables
。