Содержание
- 2. Содержание Асинхронная задача Использование Универсальные типы AsyncТask 4 этапа асинхронной задачи Threading rules Наблюдаемость памяти Версии
- 3. AsyncTask AsyncTask позволяет правильно и легко использовать поток пользовательского интерфейса. Этот класс позволяет выполнять фоновые операции
- 4. Асинхронная задача Асинхронная задача определяется вычислением, которое выполняется в фоновом потоке и результат которого публикуется в
- 5. Использование AsyncTask должен быть разделен на подклассы, чтобы быть использованным. Подкласс переопределит по крайней мере один
- 6. Пример подклассов: private class DownloadFilesTask extends AsyncTask { protected Long doInBackground(URL... urls) { int count =
- 7. Универсальные типы Asynctask Асинхронная задача использует следующие три типа: Params-тип параметров, передаваемых задаче при выполнении. Progress,
- 8. Работа с AsyncTask Напрямую с классом AsyncTask работать нельзя (абстрактный класс), вам нужно наследоваться от него
- 9. Для запоминания можно смотреть на схему.
- 10. Каркас операции private class MyAsyncTask extends AsyncTask { @Override protected Integer doInBackground(String... parameter) { int myProgress
- 11. 4 шага При выполнении асинхронной задачи она проходит 4 этапа: onPreExecute(), вызывается в потоке пользовательского интерфейса
- 12. 4 шага onProgressUpdate (Progress ...), вызывается в потоке пользовательского интерфейса после вызова метода publishProgress (Progress...). Время
- 13. Отмена задачи Задачу можно отменить в любое время, вызвав команду cancel (boolean). Вызов этого метода приведет
- 14. Threading rules Существует несколько правил потоковой передачи, которые необходимо соблюдать для правильной работы этого класса: Класс
- 15. Наблюдаемость памяти AsyncTask гарантирует, что все обратные вызовы синхронизируются, чтобы гарантировать следующее без явных синхронизаций. Эффекты
- 16. Порядок выполнения При первом введении AsyncTasks выполнялись последовательно в одном фоновом потоке. Начиная с Build.VERSION_CODES.DONUT ,
- 17. Кот полез на крышу (А. Климов) Напишем простой пример с использованием названных методов. Предположим, мы хотим
- 18. Создадим новый проект и добавим на экран кнопку, индикатор прогресса и текстовую метку: При щелчке кнопки
- 19. class MainActivity import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import java.util.concurrent.TimeUnit; public class
- 20. class CatTask class CatTask extends AsyncTask { @Override protected void onPreExecute() { super.onPreExecute(); mInfoTextView.setText("Кот полез на
- 21. Комментарий Запустите проект и нажмите на кнопку. Сначала появится текст "Кот полез на крышу", который через
- 23. Summary Nested classes Enum AsyncTask.Status Состояние - текущее состояние задачи Fields public static finalExecutorSERIAL_EXECUTOR An Executor
- 24. Public methods
- 25. Protected methods
- 26. Fields&constructor SERIAL_EXECUTOR Added in API level 11 public static final Executor SERIAL_EXECUTOR Исполнитель, выполняющий задачи по
- 27. public final boolean cancel (boolean mayInterruptIfRunning) Пытается отменить выполнение этой задачи. Эта попытка будет неудачной, если
- 28. public final AsyncTask execute (Params... params) Примечание: эта функция планирует задачу в очереди для одного фонового
- 29. Пример @Override public void onClick(View view) { asyncTask1 = new MyAsyncTask(mProgressBar1); asyncTask1.execute(); asyncTask2 = new MyAsyncTask(mProgressBar2);
- 30. public static void execute (Runnable runnable) Удобен в варианте execute(java.lang.Object) для использования с простым запускаемым объектом.
- 31. public final AsyncTask executeOnExecutor (Executor exec, Params... params) Выполняет задачу с указанными параметрами. Задача возвращает себя
- 32. Пример @TargetApi(Build.VERSION_CODES.HONEYCOMB) private void startAsyncTaskInParallel(MyAsyncTask task) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); else task.execute(); }
- 33. protected abstract Result doInBackground (Params... Params) Переопределите этот метод для выполнения вычисления в фоновом потоке. Указанными
- 34. Пример public class MyAsyncTask extends AsyncTask { private ProgressBar mProgressBar; public MyAsyncTask(ProgressBar target) { mProgressBar =
- 35. protected void onPostExecute (Result result) Выполняется в потоке пользовательского интерфейса после doInBackground(Params...). Указанный результат - это
- 36. protected void onPreExecute () Выполняется в потоке пользовательского интерфейса перед doInBackground(Params...). Вызывается непосредственно execute (Params...) или
- 37. protected void onProgressUpdate (Progress... values) Выполняется в потоке пользовательского интерфейса после вызова publishProgress(Progress...). Указанные значения являются
- 38. protected final void publishProgress (Progress... values) Этот метод может быть вызван из doInBackground (Params...) для публикации
- 40. Скачать презентацию





































Программисты. Язык программирования Pascal
Учет технического оснащения колледжа
Продвижение информационной составляющей официального сайта
Построение кратчайших маршрутов на складах временного хранения (СВХ)
Основные устройства компьютера
Группа ВК Деловые люди
Графические информационные модели. К уроку информатики в 9 классе
Изучение истории семьи в интернете
Что такое SwapXI
Информационный центр Российской академии образования
Введение в Linux. Знакомство и установка
Изменения в единицах измерения
Эр фид-запись карт меток
Instrumente und Applikationen WEB 2
Регистрация читателей ННГУ для полнотекстового доступа к ЭБС из дома
Khakerstvo(Аксёнов Максим)
Анализ систем онлайн-банкинга
Машинное обучение на языке программирования Python
Репортаж
Флешки-мышки. Игра
Программа Дизайн компьютерных игр
Instalation instructions
Основы ПИКГ. Программы AutoCAD SketchUP
Клавиатура – средство общения человека с компьютером
Создание гиперссылок
Работа по системе компьютерной графики
Палитра для сайта, разработка сайта
Система сертификации средств защиты информации