无法在可观察的Java上设置超时值无法正常工作



我正在使用Android Studio 2.3.3开发应用程序。

我正在使用可观察到的REST API调用。在我的服务器需要20秒钟来处理和响应时,它在大约10秒后获得超时。

我尝试将超时值设置为下面的代码段中。但是它仍然在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) {
                         } 

它使用java.net.sockettimeoutexception击中OnError方法:超时

我如何找出超时的确切原因?我如何为这种情况设置超时值?

使用计时器任务:

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

相关内容

  • 没有找到相关文章

最新更新