Android, как отменить текущий запрос в retrofit2 / rxjava-android - PullRequest
0 голосов
/ 08 февраля 2019

Я новичок в модификации / 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");
        }
    });

}

1 Ответ

0 голосов
/ 08 февраля 2019

Одной из лучших практик является создание подписки / одноразового использования при вызове onStart() метода действия / фрагмента и отмена подписки / удаления при вызове onStop.

Вы можете создать одноразовое Disposable disposable = call.subscribeOn и утилизировать его через disposable.dispose() или использовать CompositeDisposable .

Я использовал тот же подход с CompositeDisposable в одном из моих предыдущих питомцевпроекты - ссылка

...