Недавно я начал разрабатывать с использованием Retrofit и мог сразу заметить, что он не предоставляет некоторые важные функции, такие как - повторы, сертификация, приоритизация и многое другое.Модернизация: как разрешить дублирование запросов
Мне удалось реализовать приоритет и повторить попытку, но столкнулся с более сложной проблемой.
Я хочу, чтобы «поймать» сетевые запросы до того, как они доберутся до очереди оператора, чтобы снова и снова повторять одни и те же запросы.
Для примера. пользователь иногда может потянуть, чтобы обновить 5 раз один за другим, и я не хочу ссылаться на 5 одинаковых запросов. Проверка идентичного запроса проста - тот же домен с одинаковыми параметрами.
Вот моя реализация:
// the thread factory of the thread pool, we using it to indicate the threads' priority
ThreadFactory threadFactory = new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setPriority(threadPriority);
return t;
}
};
mQueue = new LinkedBlockingQueue<Runnable>();
mExecuter = new ThreadPoolExecutor(CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE_TIME, KEEP_ALIVE_TIME_UNIT, mQueue);
mExecuter.setThreadFactory(threadFactory);
mRestAdapter = new RestAdapter.Builder().setClient(new AndroidApacheClient()).setExecutors(mExecuter, mExecuter)
.setEndpoint(NetworkContants.DOMAIN).setRequestInterceptor(mRequestInterceptor).setConverter(new GsonConverter(new Gson()))
.build();
любое решение для вашей проблемы –