我是Retrofit / rxjava-android的新手
有人告诉我,最好的做法是,如果呼叫尚未结束并且用户离开活动页面,则取消请求。
我在哪里/如何取消它方面遇到问题。
这是我的代码,工作正常。
Observable<List<MyObject>> call;
public void getStaticMessages() {
call = restInterface.loginURL();
call.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<List<MyObject>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
Log.d("LOGGER", "error");
}
@Override
public void onNext(List<MyObject> myObjects) {
Log.d("LOGGER", "succcess");
}
});
}
答案 0 :(得分:1)
最佳实践之一是,在调用onStart()
的活动/分段方法时创建预订/可处置,并在调用onStop
时取消预订/处置。
您可以创建一个一次性Disposable disposable = call.subscribeOn
,然后通过disposable.dispose()
进行处置,也可以使用CompositeDisposable。
在之前的一个宠物项目-link
中,我对CompositeDisposable使用了相同的方法