Духовской пер 17 стр.4
29.07.2016
Поскольку объект AsyncTask действует асинхронно, он способен выполнять множество задач последовательно или параллельно. Среда выполнения может явно определяться в приложении или неявно устанавливаться платформой. Метод, инициализирующий выполнение, определяет, как именно задача будет выполняться. Здесь показаны возможные варианты. Смотрите духовской пер 17 стр.4.
До версии API level 11 был доступен лишь один вариант, указанный первым в таблице. Начиная с версии API level 11 и в последующих версиях AsyncTask предлагает три метода выполнения задач с различными свойствами:
execute (Params...) - как было сказано выше, этот метод существует с версии API level 3 и до сих пор остаётся единственным методом, доступным во всех версиях платформы. Он использует внутреннюю среду выполнения AsyncTask, но это положение дел изменяется с развитием платформы в целом. См. раздел «Выполнение в различных версиях платформы» ниже;
execute (Runnable) - метод добавлен в версии API level 11 для выполнения задач типа Runnable без переопределения doInBackgroundf). Runnable-задача обрабатывается во внутренней среде выполнения AsyncTask, но не использует механизма передачи сообщений для взаимодействия между потоками. Методы onPreExecute (), onPostExecute () и onCancelled() не вызываются, поэтому нет возможности показывать ход выполнения задачи. В большинстве случаев этот вариант лучше заменить другим решением (подробнее см. раздел «Использование метода execute(Runnable)» ниже;
executeOnExecutor(Executor, Params...) - метод добавлен в версии API level 11 для настройки среды выполнения, в которой обрабатывается задача. Метод может использовать внутреннюю среду выполнения или определить настраиваемую среду выполнения Executor.
|