Ser*_*ion 16 android retrofit2 rx-java2
我正在执行网络请求,我发送文件和消息.我想有一个取消当前请求的选项.我发现了两个类似的问题,并且都建议observable.subscribe(Observer)返回具有方法的Subscription对象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();
}
});
Run Code Online (Sandbox Code Playgroud)
那么如何取消订阅/取消我的请求?谢谢.
在 RXJava 中,您必须使用订阅来取消订阅
private Subscription mSubscription;
/.../
Observable<MessengerRaw> observable = mModel.sendMessage(message, companion, description, multiParts);
Subscription subscription = observable.subscribe(new Observer<MessengerRaw>() {/.../});
Run Code Online (Sandbox Code Playgroud)
当您想取消订阅时,可以致电
if(!subscription.isUnsubscribed()){
subscription.unsubscribe();
}
Run Code Online (Sandbox Code Playgroud)
在RXJava 2中observable.subscribe(new Observer<MessengerRaw>() {/.../});返回Disposable对象,可以调用dispose();
| 归档时间: |
|
| 查看次数: |
12643 次 |
| 最近记录: |