Ответ
AsyncTask — это устаревший класс в Android для выполнения фоновых операций и обновления UI. Он был заменён на более современные решения (Coroutines, RxJava, Executors) из-за ряда проблем:
Основные проблемы:
- Утечки памяти (если Activity уничтожается, AsyncTask может держать ссылку)
- Нет обработки поворотов экрана (нужно сохранять/восстанавливать состояние вручную)
- Ограниченный контроль (сложно отменить, нет гибкости в потоковой модели)
Структура:
private class MyTask extends AsyncTask<Params, Progress, Result> {
@Override
protected Result doInBackground(Params... params) {
// Фоновая работа
return result;
}
@Override
protected void onPostExecute(Result result) {
// Обновление UI
}
}
Где использовался: простые фоновые задачи (сетевые запросы, загрузка изображений), но сейчас не рекомендуется из-за deprecated статуса в API 30.