我正在使用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));