Можно ли по-прежнему использовать AsyncTask с API >= 30?

#android

Вопрос:

Поскольку API 30 является устаревшей задачей AsyncTask в Android: Документация

Означает ли это, что им больше нельзя пользоваться? Что его использование вообще не сработает?

Или это осуждение скорее рекомендация? Вместо этого следует использовать сопрограммы Kotlin?

Ответ №1:

Означает ли это, что им больше нельзя пользоваться? Что его использование вообще не сработает?

В данном случае-нет.

Или это осуждение скорее рекомендация?

Часто это имеет место, и это имеет место для AsyncTask . Если API больше не работает, в документации будет объяснено, каким будет измененное поведение.

Вместо этого следует использовать сопрограммы Kotlin?

Хотя сопрограммы-это вариант, в основном Google предпочел бы, чтобы вы использовали что угодно, кроме AsyncTask . В зависимости от обстоятельств, это может быть что-то вроде сопрограмм или RxJava. В других случаях это может быть какая-то форма ExecutorService . В других случаях это могло бы быть WorkManager так .

Часто в уведомлении об устаревании указываются рекомендуемые альтернативы. В этом случае он имеет:

Вместо этого используйте стандартные утилиты параллелизма java.util.concurrent или Kotlin.

Здесь «стандартные утилиты java.util.concurrent…» означают что-то вроде ExecutorService , а «утилиты параллелизма Kotlin» ссылаются на сопрограммы.