AsyncTask разработан, чтобы работать лучше всего, когда вложен в класс Activity.
Что делает AsyncTask «особенным», так это то, что он не просто рабочий поток - он объединяет рабочий поток, который обрабатывает код вdoInBackground(...)
с методами, которые выполняются в потоке пользовательского интерфейса Activity - onProgressUpdate(...)
и onPostExecute(...)
являются наиболее часто используемыми.
При периодическом вызове updateProgress(...)
из doInBackground(...)
вызывается метод onProgressUpdate(...)
позволяя ему манипулировать элементами пользовательского интерфейса действия (индикатор выполнения, текст, отображающий имя загружаемого файла и т. д.).
Короче говоря, вместо того, чтобы запускать операцию обновления из AsyncTask, необходимо обновить само действие активности.должен иметь вложенный AsyncTask, который он использует для обработки обновления и публикации прогресса в пользовательском интерфейсе.