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 Threadan AsyncTask?
¿En qué escenario, debo usar a Threado 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
AsyncTaskcon 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:
Threaddebe 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.AsyncTaskse 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