Что знаешь про AsyncTask

«Что знаешь про AsyncTask» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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.