вопрос об асинхронном http - PullRequest
0 голосов
/ 18 апреля 2010

Я просто хочу проверить, хорошо ли я понял, как работает асинхронный Http-запрос на Android. Предположим, я сделал такой запрос и установил ResponseHandler<String> responseHandler для обработки ответа. Делая это, возможно ли заблокировать поток пользовательского интерфейса в ожидании ответа? Подразумевается, что код в функции:

public String handleResponse(HttpResponse response)

также выполняется в потоке пользовательского интерфейса или там молча создается поток, который ожидает ответа и вызывает функцию handleResponse (HttpResponse response) при получении ответа?

1 Ответ

0 голосов
/ 18 апреля 2010

Делая это возможно иметь поток пользовательского интерфейса заблокирован в ожидании ответ?

Вызов execute() с или без ResponseHandler заблокирует этот поток до тех пор, пока не будет обработан HTTP-запрос. Если вы вызовете execute() в главном потоке приложения, вы заблокируете пользовательский интерфейс. Это не очень хорошая вещь - используйте AsyncTask до execute() в отдельном потоке, а затем используйте реализацию onPostExecute() для обновления вашего пользовательского интерфейса с результатами запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...