Где я могу расширить AsyncTask? - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть система входа в систему, состоящая из следующих элементов:

LoginActivity использует LoginController использует RestClient для вызова веб-службы с Execute ().Я хочу, чтобы вызов веб-службы выполнялся асинхронно, но мне также нужно диалоговое окно, чтобы уведомлять пользователя о соответствующей информации во время выполнения вызова.Execute ничего не возвращает.

Как мне поступить?Где я могу использовать AsyncTask?

1 Ответ

0 голосов
/ 10 февраля 2012

В AsyncTask есть несколько методов, которые помогут вам в этом.

Расширение AsyncTask:

public class MyTask extends AsyncTask<Object, Void, Void>

  @Override
  protected void onPreExecute() {
    // show progress dialog
  }

  @Overrride
  protected Void doInBackground(Object... params) {
    HttpUriRequest req = (HttpUriRequest) params[0];
    String myString = (String) params[1];

    // connect
    return null;
  }

  @Override
  protected void onPostExecute(Void result) {
    // hide dialog
  }
}

Чтобы выполнить это с параметрами, попробуйте следующее:

myTask.execute(request, "aString");

Где запрос - это объект типа HttpUriRequest. Запомните порядок значений параметров.

Если вы хотите обновить статус во время подключения службы, вы можете использовать этот метод, как сказал Разель:

onProgressUpdate() {
  // Update view in progress dialog
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...