В качестве дополнительного наблюдения как для ответов @Blundells, так и для @Mathews я не уверен, что любой вызов доставлен на что-либо , но основной поток Volley.
Источник
Посмотрев на реализацию RequestQueue
, кажется, что RequestQueue
использует NetworkDispatcher
для выполнения запроса и ResponseDelivery
], чтобы доставить результат (ResponseDelivery
вводится в NetworkDispatcher
). ResponseDelivery
в свою очередь создается с помощью Handler
нерестится из основного потока (где-то вокруг строки 112 в реализации RequestQueue
).
Где-то около строки 135 в NetworkDispatcher
реализация кажется, что также успешные результаты доставляются через ту же ResponseDelivery
, что и любые ошибки. Еще раз; a ResponseDelivery
на основе Handler
нерестится из основного потока.
Обоснование
В случае использования, когда запрос должен быть сделан из IntentService
, это справедливо предположить, что поток службы должен блокироваться до тех пор, пока у нас не будет ответа от Volley (чтобы гарантировать живое пространство выполнения для обработки результата).
Предлагаемые решения
Один из подходов чтобы переопределить способ по умолчанию, созданный RequestQueue
создан , где вместо него используется альтернативный конструктор, вводящий ResponseDelivery
, который появляется из потока current , а не основного нить. Однако я не исследовал последствия этого.