改造 2 + RxJava cancel/unsubscribe
Retrofit 2 + RxJava cancel/unsubscribe
我正在执行发送文件和消息的网络请求。
我想要取消当前请求的选项。我发现了两个类似的问题,都表明 observable.subscribe(Observer)
returns Subscription object which has method unsubscribe()
.
在我的例子中,我使用 observable.subscribe(Observer)
,这是无效的。这是我的代码:
Observable<MessengerRaw> observable = mModel.sendMessage(message, companion, description, multiParts);
observable.subscribe(new Observer<MessengerRaw>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(MessengerRaw value) {
if (getView() != null) {
((MessengerActivity) getView()).resetMessegeView();
((MessengerActivity) getView()).updateMessageList();
}
}
@Override
public void onError(Throwable e) {
getData().remove(0);
if (getView() != null) {
((MessengerActivity) getView()).updateMessageList();
}
}
@Override
public void onComplete() {
hideProgress();
}
});
那么我如何unsubscribe/cancel 我的请求?
谢谢。
在 RXJava 中您必须使用订阅来取消订阅
private Subscription mSubscription;
/.../
Observable<MessengerRaw> observable = mModel.sendMessage(message, companion, description, multiParts);
Subscription subscription = observable.subscribe(new Observer<MessengerRaw>() {/.../});
想退订的时候可以拨打
if(!subscription.isUnsubscribed()){
subscription.unsubscribe();
}
在 RXJava 2 observable.subscribe(new Observer<MessengerRaw>() {/.../});
returns 一次性对象,可以调用 dispose();
在RxJava2中,可以在oserver的onSubscribe回调方法中获取Disposable对象,用于dispose subscription
我正在执行发送文件和消息的网络请求。
我想要取消当前请求的选项。我发现了两个类似的问题,都表明 observable.subscribe(Observer)
returns Subscription object which has method unsubscribe()
.
在我的例子中,我使用 observable.subscribe(Observer)
,这是无效的。这是我的代码:
Observable<MessengerRaw> observable = mModel.sendMessage(message, companion, description, multiParts);
observable.subscribe(new Observer<MessengerRaw>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(MessengerRaw value) {
if (getView() != null) {
((MessengerActivity) getView()).resetMessegeView();
((MessengerActivity) getView()).updateMessageList();
}
}
@Override
public void onError(Throwable e) {
getData().remove(0);
if (getView() != null) {
((MessengerActivity) getView()).updateMessageList();
}
}
@Override
public void onComplete() {
hideProgress();
}
});
那么我如何unsubscribe/cancel 我的请求? 谢谢。
在 RXJava 中您必须使用订阅来取消订阅
private Subscription mSubscription;
/.../
Observable<MessengerRaw> observable = mModel.sendMessage(message, companion, description, multiParts);
Subscription subscription = observable.subscribe(new Observer<MessengerRaw>() {/.../});
想退订的时候可以拨打
if(!subscription.isUnsubscribed()){
subscription.unsubscribe();
}
在 RXJava 2 observable.subscribe(new Observer<MessengerRaw>() {/.../});
returns 一次性对象,可以调用 dispose();
在RxJava2中,可以在oserver的onSubscribe回调方法中获取Disposable对象,用于dispose subscription