Я хочу добавить что-то к принятому ответом Мэтью. Хотя
RequestFuture
может показаться, что делает синхронный вызов из потока, который вы создали, он этого не делает. Вместо этого вызов выполняется в фоновом потоке. Из того, что я понимаю после прохождения библиотеки, запросы в RequestQueue
отправляются по методу start()
:
public void start() {
....
mCacheDispatcher = new CacheDispatcher(...);
mCacheDispatcher.start();
....
NetworkDispatcher networkDispatcher = new NetworkDispatcher(...);
networkDispatcher.start();
....
}
Теперь оба
CacheDispatcher
и NetworkDispatcher
классы расширяют поток. Таким образом, создается новый рабочий поток для отбрасывания очереди запросов, и ответ возвращается слушателям успеха и ошибок, реализованным внутри RequestFuture
. Хотя ваша вторая цель достигнута, но ваша первая цель не существует, поскольку новый поток всегда порожден, независимо от того, какой поток вы выполняете
RequestFuture
. Короче говоря, истинный синхронный запрос невозможен при использовании библиотеки волейбола по умолчанию. Исправьте меня, если я ошибаюсь.