В петле сообщения выполняются последовательно • Компоненты UI не могут быть изменены в другом потоке • Android предоставляет хорошие средства для усмирения «диких» потоков
своей работы • Большое количество потоков отрицательно сказывается на производительности • Для решения этой проблемы используется паттерн «Пул потоков» Пул потоков
задач • Добавлено в Android 1.5 • Основано на пуле потоков • Основная логика в методе doInBackground • http://d.android.com/reference/ android/os/AsyncTask.html
Void, Void> { ... } • Три шаблонных параметра: • Parameter - передается при старте • Progress - промежуточный прогресс • Result - результат выполнения • Если вам не нужны параметры:
петле • execute(Param... params) - запуск AsyncTask • Запуск AsyncTask также должен быть сделан в петле • Не вызывайте onPreExecute, onPostExecute, doInBackround и onProgressUpdate вручную! • Один экзмепляр AsyncTask может быть выполнен только один раз
выполнения приложения, а программист переопределяет callbacks • Используете Service как основу выполнения асинхронных операций (неважно в связке с AsyncTask или нет) • Не выполняйте в главном потоке «долгие» операции • Наличие AsyncTask в Activity не влияет на приоритет