Я отправляю несколько перенастроенных вызовов через SyncAdapter onPerformSync, и я пытаюсь настроить HTTP-вызовы, отправив их через инструкцию try/catch sleep. Однако это блокирует пользовательский интерфейс и не будет реагировать только после завершения всех вызовов.Регулировка сетевых вызовов в SyncAdapter onPerformSync
Что такое лучший способ регулирования сетевых вызовов (с таймером сна) в фоновом режиме в onPerformSync без блокировки пользовательского интерфейса?
@Override
public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider, SyncResult syncResult) {
String baseUrl = BuildConfig.API_BASE_URL;
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build();
service = retrofit.create(HTTPService.class);
Call<RetroFitModel> RetroFitModelCall = service.getRetroFit(apiKey, sortOrder);
RetroFitModelCall.enqueue(new Callback<RetroFitModel>() {
@Override
public void onResponse(Response<RetroFitModel> response) {
if (!response.isSuccess()) {
} else {
List<RetroFitResult> retrofitResultList = response.body().getResults();
Utility.storeList(getContext(), retrofitResultList);
for (final RetroFitResult result : retrofitResultList) {
RetroFitReview(result.getId(), service);
try {
// Sleep for SLEEP_TIME before running RetroFitReports & RetroFitTime
Thread.sleep(SLEEP_TIME);
} catch (InterruptedException e) {
}
RetroFitReports(result.getId(), service);
RetroFitTime(result.getId(), service);
}
}
}
@Override
public void onFailure(Throwable t) {
Log.e(LOG_TAG, "Error: " + t.getMessage());
}
});
}
}
Спасибо за ваш ответ. В настоящий момент я просматриваю вызовы синхронизации «Модернизация». –