AsyncTask Android - шаблон проектирования и возвращаемые значения

Я пишу приложение, которое проверяет учетные данные для входа на внешний веб-сервер, поэтому у меня есть основная проблема создания экрана входа, который при отправке отправляет HTTP-запрос на сервер работает в фоновом режиме и не вызывает зависание пользовательского интерфейса - при предоставлении ProgressDialog пользователю.

Моя проблема заключается в том, что я хочу написать общий класс HTTP-запроса, расширяющий AsyncTask, поэтому, когда я вызываю . execute () Затем я передам параметры String, которые могут содержать что-то вроде 'post' , и когда вызывается doInBackground , он увидит строку 'post' и затем перенаправит эти параметры на соответствующий вызов в моем классе. Псевдокод был бы чем-то вроде

public class HTTPOperations extends AsyncTask<String, Void, String>
{
doInBackground(String... string1,additionalParams)
{
  if string1.equals "post"
      response = httpPost(additionalParams)
       return response;
}

httpPost(params)
{
// do http post request
}
}

Это все, что я мог придумать, кроме создания класса для каждого запроса HTTP Post / GET и т. Д., Который я хочу сделать, и расширения ASyncTask ...

Это приводит меня к моей следующей проблеме , если HTTP POST успешен и возвращает токен аутентификации, как мне получить доступ к этому токену?

Поскольку new httpOperations.execute () не возвращает строку из doInBackground, а возвращает значение типа

Извините, если это не имеет смысла, я вообще не могу этого понять. Пожалуйста, попросите разъяснений, если они вам нужны. Приветствуются шаблоны и идеи проектирования AsyncTask.

20
задан Tim 20 February 2011 в 17:25
поделиться