У меня следующий код
public Retrofit provideRetorift(){
OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
.connectTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.build();
return new Retrofit.Builder()
.baseUrl(Constant.BASE_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(ScalarsConverterFactory.create())
.build();
}
И вызов API, как показано ниже
apiService().getApiRespo()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retry(5)
.doOnNext(new Consumer<User>() {
@Override
public void accept(User user) throws Exception {
}
})
.subscribe(new Observer<User>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(User user) {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
Я добавил все в порядке тайм-аут HTTP, а также повторную попытку Java RX, когда я подключаюсь к Интернету между ними, он не будет повторяться. Работает только при первом доступе к Интернету.
Я новичок в Android, может ли кто-нибудь помочь мне, как повторить попытку автоматически, когда интернет-соединение между приложением пытается вызвать API