Помогите Диме помочь помогать помочь помогать

Ремонт холодильника

27.07.2016


Связывание фоновой задачи с Ul-потоком


1. Создание экземпляра AsyncTask.


2. Начало выполнения задачи.


3. Первый обратный вызов в UI-потоке: onPreExecute(). Обычно с помощью этого вызова производится подготовка пользовательского интерфейса к длительной операции, например вывод па экран индикатора выполнения задачи.


4. Обратный вызов в фоновом потоке: doInBackground (). Здесь выполняется продолжительная задача.


5. Обновление данных о ходе выполнения задачи передаётся из метода publishProgress () в фоновом потоке. При этом вызывается метод onProgressUpdateO в UI-потоке, обрабатывающий полученное обновление и изменяющий вид индикатора выполнения па экране. Режим и способ изменений определяются параметром Progress. Возможно вам понадобится ремонт холодильника.


6. Фоновое выполнение завершается, после чего выполняется обратный вызов в UI-потоке для передачи результата. Здесь возможны два варианта обратного вызова: onPostExecute () вызывается но умолчанию, но если задача AsyncTask была отменена, получить результат поможет обратный вызов onCancelledO. Гарантируется, что может быть выполнен только один из этих двух обратных вызовов.


Механизм обновления хода выполнения поддерживает две полезные функции:


вывод па экран информации о ходе выполнения длительной операции путём постоянного обновления информации о том, какая часть задачи выполнена к текущему моменту;


доставка результата частями вместо возврата его полностью после завершения задачи в onPostExecute (). Например, если задача загружает несколько изображений из сети, совсем необязательно ждать окончания загрузки всех изображений и только после этого начинать передачу их в UI-поток. Можно воспользоваться методом publishProgress () для передачи в UI-поток изображений по одному но мерс их готовности. При таком подходе пользователь получает постоянное и достаточно быстрое обновление интерфейса.