En la interfaz de usuario, para realizar algunos trabajos en segundo plano, utilicé otro Thread
. Pero como lo sugirieron otros, ahora estoy usando AsyncTask
.
¿Cuál es la principal diferencia entre ay Thread
an AsyncTask
?
¿En qué escenario, debo usar a Thread
o an AsyncTask
?
Respuestas:
Para tareas de larga duración o uso intensivo de CPU, existen básicamente dos formas de hacerlo: subprocesos de Java y AsyncTask nativo de Android.
Ninguno de los dos es necesariamente mejor que el otro, pero saber cuándo usar cada llamada es esencial para aprovechar el rendimiento del sistema en su beneficio.
Use AsyncTask para:
Utilice hilos de Java para:
Y hay muchos buenos recursos en Internet que pueden ayudarlo:
http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html
fuente
AsyncTask
con el propio programador.Si usa hilos Java, debe manejar los siguientes requisitos en su propio código:
fuente
Hilo
AsyncTask
fuente
Para más información visite aquí
fuente
Hilo:
Thread
debe usarse para separar las operaciones de larga ejecución del hilo principal para mejorar el rendimiento. Pero no se puede cancelar con elegancia y no puede manejar los cambios de configuración de Android. No puede actualizar la interfaz de usuario desdeThread
.AsyncTask
se puede usar para manejar elementos de trabajo de menos de 5 ms de duración. ConAsyncTask
, puede actualizar la interfaz de usuario a diferencia de JavaThread
. Pero muchas tareas de larga duración ahogarán el rendimiento.Tienes pocas alternativas más para ambos.
HandlerThread / Handler y ThreadPoolExecutor
Consulte la publicación a continuación para obtener más detalles:
Handler vs AsyncTask vs Thread
fuente