![]() |

AndroidでRetrofit+RxJavaを使ってみた
の内容でsubscribe後にdisposeしてないことに気づいたので
それのやり方
・コード
@NonNull
private Disposable mDisposable = Disposables.disposed();
RequestApi.AAA()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe(new Consumer() {
@Override
public void accept(Disposable disposable) {
mDisposable = disposable;
}
})
.doFinally(new Action() {
@Override
public void run() {
mDisposable.dispose();
}
})
.subscribe(new DisposableSingleObserver() {
@Override
public void onSuccess(Model model) {
//成功だったら
}
@Override
public void onError(Throwable e) {
//エラーだったら
}
});
@Override
public void onPause() {
super.onPause();
mDisposable.dispose():
}
doOnSubscribeでdisposeをメンバ変数で保持して
doFinallyとonPauseでdisposeします
また、dispose中に同じリクエストしないようにする場合は
mDisposable.isDiposed()でチェックしてみてください