Con bastantes años en servicio y varios millones de crashes la API AsyncTask, para realizar llamadas asíncronas, paso a ser una API depreciada dentro del universo Android 11 (API R), este cambio se vuelve notorio incluso al actualizar el targetSdkVersion al nivel 29 (Android 10), en donde ya marca dicha librería como sin soporte.

En las últimas versiones se ha visto un aumento de APIS desechadas, esto se debe a la estandarización de procesos que Google ha estado implementando a varios niveles del sistema Android, dichos cambios que empezaron en Android 8 (API 26) hoy se van consolidando y a su paso se llevan viejas costumbres y sus maneras de operar.

Las siguientes son alternativas sustituyen en su totalidad las AsyncTaks y seguiran siendo soportadas por Android en futuras versiones.

OPCIONES NATIVAS


Futures

En primer lugar, Google recomienda usar los Futures para los que Java cuenta con soporte desde su versión 5, una a API bastante sutil y funcional que se encuentra nativamente en todas las versiones de Android.

La única desventaja por decirlo así es que sigue un esquema de declaración clásico por lo que puede resultar poco intuitivo.

Su sintaxis es la siguiente:
Screenshot-from-2020-04-28-23-30-56
Documentacón

Completable Futures

Introducidos en Java 8 como una evolución natural de los Futures clásicos, para poder utilizarlos se deberá habilitar el soporte de Java 8 en Android, su sintaxis funcional la pone a la vanguardia respecto a tendencias similares en otros lenguajes. A diferencia de los Futures es posible complementar su funcionamiento concatenando operaciones mediante funciones anónimas.

Su sintaxis es la siguiente:
Screenshot-from-2020-04-28-23-41-26
Documentacón

OPCIONES NO NATIVAS

RxJava

La librería por excelencia para tareas asíncronas, sin duda una gran opción, aunque nos obliga a mantener una compatibilidad extra al ser una librería agregada.
rxjava
Link con la guía de implementación

Fraternalmente I.I. Daniel Rosillo;
- Project Manager in Rosillo Labs



Leave a comment! We it!


Contact us