2013-07-18 2 views
0

Я не уверен, был ли этот вопрос задан раньше. При выполнении async-задачи с использованием myTask.execute(); какой метод выполняется в самом начале. Я следую этому руководству: http://mobiforge.com/developing/story/consuming-json-services-android-apps для использования служб JSON, а автор использует new ReadWeatherJSONFeedTask() .execute() вместе с некоторыми параметрами. Я запутался в том, какой метод запускается первым и как передается параметр для получения результата. Может кто-нибудь мне помочь.Выполнить метод Async Task

Спасибо.!

+0

Параметры есть, потому что кто-то решил использовать _inheritance_ _extending_ класса _AsyncTask_. Когда вы расширяете класс, вы можете добавить свои собственные переменные-члены для достижения новых функциональных возможностей. – jahroy

ответ

0

В соответствии с Android API Reference AsyncTask,

Когда асинхронная задача выполняется, задача проходит через 4 этапа:

  1. onPreExecute(), вызываемых в потоке пользовательского интерфейса перед задача выполнена. Этот шаг обычно используется для настройки задачи, например, , показывая индикатор выполнения в пользовательском интерфейсе.
  2. doInBackground (Params ...), вызывается в фоновом потоке сразу после того, как onPreExecute() завершает выполнение. Этот шаг используется для выполнения фоновых вычислений, которые могут занять много времени. На этот шаг передаются параметры асинхронной задачи . Результат вычисления должен быть возвращен этим шагом и будет , возвращенном на последний шаг. Этот шаг также может использовать publishProgress (Progress ...), чтобы опубликовать одну или несколько единиц прогресса. Эти значения публикуются в потоке пользовательского интерфейса, на этапе onProgressUpdate (Прогресс ...).
  3. onProgressUpdate (Progress ...), вызывается в потоке пользовательского интерфейса после вызова publishProgress (Progress ...). Время выполнения: не определено. Этот метод используется для отображения любой формы прогресса в пользовательском интерфейсе , пока фоновое вычисление все еще выполняется. Например, он может использоваться для анимации индикатора выполнения или отображения журналов в текстовом поле .
  4. onPostExecute (Result), вызывается в потоке пользовательского интерфейса после завершения вычисления фона. Результат вычисления фона передается на этот шаг в качестве параметра.

Как это объясняет onPreExecute() на Ui резьбы выполняется в самом начале.

Этот Guide поможет вам в этом.

+1

Спасибо за быстрый ответ! – user2511882

4

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

  1. onPreExecute() --- он работает в потоке пользовательского интерфейса
  2. doInBackground() и onProgressUpdate() - они запускаются на рабочий поток
  3. и onPostExecute() --- работает в потоке пользовательского интерфейса.
+0

Спасибо за быстрый ответ! – user2511882