Cita: Originalmente Escrito por
mocelet
a mí no me gustan porque son muy feas Controlar su ciclo de vida es complicado, puede dar lugar a pérdidas de memoria
Aparte de feas, lo segundo que comentas lo veo más importante.
Se inician con una referencia a la Activity que las inicia, así que si rotas la pantalla mientras se está ejecutando, ese enlace sigue existiendo y la Activity no será recolectada por el GC (a no ser que implementes tu propio método de detach).
Además, como comentas, existen librerías que hacen todo ese trabajo de forma asíncrona ofreciendo una API mucho más limpia, gestionando ellas el tema del Threading, y sin tantas complicaciones para el desarrollador.
Finalmente, como las he visto implementadas muchas veces es metidas directamente dentro de la Activity, con lo cuál:
1. La separación de principios no se está cumpliendo (la Activity hace de vista y "Controlador" a la vez)
2. Puedes tener tentaciones de actualizar componentes de la vista en otro hilo de ejecución (si la AsyncTask ha lanzado otro hilo), lo cuál puede dar errores
3. Fácilmente se pueden dar race conditions si no sabes gestionar bien tus variables (si sabes lo que estás haciendo no deberías tener problemas, pero hay de todo en el mundo).