AsyncTask не актуален. Так ли это?

При проверке тестового задания мне сказали что использование AsyncTask в Android приложении давно не актуально. Так как на встречное письмо ответа не было, прошу совета здесь.

На самом ли деле AsyncTask устарел? Стоит ли использовать другие средства выполнения кода в фоновом потоке, если да то какие именно?
  • Вопрос задан
  • 2023 просмотра
Решения вопроса 3
1110001111
@1110001111
А для чего именно ты использовал Async Task?
Async Task имеет некоторые, скажем так, особенности в применении, если их не учитывать, то можно получить проблемы. Навскидку, например:
- Все Асинк Таски выполняются в ОДНОМ фоновом потоке, по - очереди.
- Если запустить Асинк Таск на долгую задачу и вызвать смену ориентации экрана, то Активность запустившая Асинк Таск уничтожиться, но сам Асинк Таск продолжит работу. Более того, по завершении он попытается отдать данные уничтоженной Активности, в результате работа была проделана зря. Также может быть выброшено исключение, если Асинк Таск попытается обратиться к View уничтоженной Активности.
- Различные утечки памяти. Например, Асинк Таск реализованный как внутренний класс в Активности, не даст удалить сборщику мусора Активность пока работает Асинк Таск.
Про утечки можешь почитать здесь:
habrahabr.ru/company/sebbia/blog/243537
habrahabr.ru/company/badoo/blog/240479

Короче говоря, Асинк Таск применяется для коротких (секунды) и редких задач. Нужно ясно представлять для чего именно подходит данный класс, иначе можно наломать дров. Нужно понимать принципы работы Асинк Таска, Лоадеров, Сервисов и уметь обосновать их применение.
Ответ написан
gadfi
@gadfi
https://gamega.org
он не устарел, но его использование часто считается дурным тоном (при этом часто забывают про
шо занадто то нездраво
)
все зависит от задачи, но чтобы не попадать в такие ситуации используйте или лоадеры, или какую ту либу обертку над сервисами в зависимости от задачи
Ответ написан
Комментировать
Dit81
@Dit81
Security researcher, pentester, internet-marketer
Может просто хотят использования компонента Service? Интересный вопрос, сам использую только AsyncTask для парсинга и доступа к инету...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@IceJOKER
Web/Android developer
Странно, по моему очень даже актуально, да и оф. флага Deprecated не вижу - developer.android.com/intl/ru/reference/android/os...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы