Невозможно установить значение тайм-аута для наблюдаемого java, не работающего

Я использую Android Studio 2.3.3 для разработки приложения.

Я использую Observable для выполнения остальных вызовов API. Время ожидания истекает примерно через 10 секунд, в то время как моему серверу требуется 20 секунд для обработки и ответа.

Я попытался установить значение тайм-аута, как показано во фрагменте кода ниже. Но все же его время ожидания составляет около 10 секунд.

goalService.saveGoal(appState.getUserId(), goal)
                    .timeout(30, TimeUnit.SECONDS)
                    .subscribeOn(Schedulers.newThread())
                    .timeout(30, TimeUnit.SECONDS)
                    .observeOn(AndroidSchedulers.mainThread())
                    .timeout(30, TimeUnit.SECONDS)
                    .subscribe(new Subscriber<Goal>() {
                        @Override
                        public void onCompleted() {

                        }

                        @Override
                        public void onError(Throwable e) {
                            inProgress = false;
                            e.printStackTrace();
                            if (isViewAttached()) {
                                getView().hideLoader();
                                handleError(e);
                            }
                        }

                        @Override
                        public void onNext(Goal goal) {
                         } 

Он попал в метод onError с java.net.SocketTimeoutException: timeout

Как я могу выяснить точную причину тайм-аута? Как я могу установить значение тайм-аута для этого случая?


person Kirandeep Sandhu    schedule 15.02.2018    source источник


Ответы (1)


использовать задачу таймера:

TimerTask doAsynchronousTask = new TimerTask() {
                    @Override
                    public void run() {
                        ...
                    }
                };
                new Timer().schedule(doAsynchronousTask, (your needed seconds * 1000));
person Noir    schedule 15.02.2018