Где крафт пакеты купить оптом07.09.2017Реализация простой асинхронной задачи Давайте приступим к соответствующим деталям. С помощью исходного кода будут продемонстрированы следующие моменты: • как расширить класс AsyncTask; • как передать аргументы конструктору; • какие методы переопределять; • как настроить диалоговое окно с информацией о ходе работы с помощью метода onPreExecute (); • где выполняется действительная работа: метод doInBackground(); • как запускать обратные вызовы, связанные с ходом работы; • как переопределить метод выдачи информации о ходе работы; • как обнаружить завершение работы с помощью метода onPostExecute(). Мы начнем с расширения класса AsyncTask, использующего обобщения. Узнайте где крафт пакеты купить оптом. Обобщения в классе AsyncTask Для обеспечения безопасности к типам в методах класс AsyncTask задействует обобщения. При расширении класс AsyncTask требует указания следующих типов (через обобщения). • Тип для параметров метода execute(). При расширении AsyncTask понадобится указать тип параметров, которые будут передаваться методу execute(). Например, если в качестве типа указано String, метод execute () будет ожидать любое количество строк, разделенных запятыми. • Тип для параметров метода обратного вызова, связанного с ходом работы. Этот тип относится к значениям в массиве, передаваемом обратно вызывающей активности во время сообщения о ходе работы через метод обратного вызова onProgressUpdate(Progress... progressValuesArray). Возможность передачи массива значений, связанных с ходом работы, позволяет отслеживать сразу множество аспектов выполняемой задачи. Это особенно полезно, если асинхронная задача работает как множество подзадач. • Тип возврата для метода ехесике(). Этот тип относится к возвращаемому значению, которое отправляется обратно как окончательный результат выполнения через метод обратного вызова опРозкЕхесиЬе(Кези1к £1па1Кези1"Ь). Чтобы понять, как указывать эти типы, вы должны просмотреть определение класса АзупсТазк (частично показанное в листинге 18.2). Обратите внимание на то, как этот конкретный класс МуЬопдТаэк устраняет неоднозначность имен типов, в результате получая безопасные к типам сигнатуры функций.
|
|
|