연결이 설정된 시간에 현재 시간을 서버에 보내려고합니다. 나는이 시간이 네트워크의 상태와 관련하여 약간의 대기 시간을 가질 수 있음을 이미 알고 있습니다. 이를 위해 , 나는 개조 (2) rxjava (1)을 사용하고, 나는 시도하고 재시도 횟수 사이에 약간의 지연이 같은있다 :재시도 후 올바른 현재 시간 보내기 RxJava 및 Retrofit
내 문제가mRetrofit = new ApiClient().getObservableClient();
mService = mRetrofit.create(ApiObservableService.class);
mService.sendServerTimeNow(getCurrentTime())
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.retryWhen(«new RetryWithDelay(retries, delay))
.subscribe(new CustomSubscriber<ResponseBody>());
, 때마다 재 시도입니다 만든 경우 getCurrentTime()은 새로 고치지 않고 해당 값은 구독시 항상 동일합니다.
E.g.
Retry 1 - 1482399029862
Retry 2 - 1482399029862 //here should be changed to the new current time
Retry 3 - 1482399029862 //here should be changed to the new current time
나는 다시 구독 할 시도 벌채가 있고, 이것이 사실이라면 현재 시간을 새로 고칠 생각되지 않는 이유는 무엇입니까?
이 내 getCurrentTime이다()
public long getCurrentTime(){
return System.currentTimeMillis();
}
어떻게 현재 시간의 새로 고침을 수행 할 수 있습니다?
또한, 이미 시도했지만 성공하지 다음 Observable
순서는 조립과 통화를하지 않는 경우
Observable.just(getCurrentTime())
.flatMap(new Func1<Long, Observable<ResponseBody>>() {
@Override
public Observable<ResponseBody> call(Long aLong) {
mService.sendServerTimeNow(aLong)
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.retryWhen(«new RetryWithDelay(retries, delay))
.subscribe(new CustomSubscriber<ResponseBody>());
에 대한
Observable.fromCallable
를 사용하여, 다시 시간을 계산해야합니다, 다시 값을 계산 해설 주셔서 감사합니다. 고마워요. – iGoDa