0 votos
Buenas noches a todos…

¿Alguien sabe si hay alguna forma de matar todos los hilos creados de una vez?

El caso es que estoy con mapas de google y mietras se crean etiquetas con fotos, hago las tareas en segndo plano: convertir cada foto a escala infeoior para evitar outofmemory… el caso es que como procesar la foto le lleva un poco más, pinta las etiquetas antes de asignarles la foto y luego se va visualizando según va terminando de procesar. El caso es que se crean tantos hilos como etquetas tengo y mientras aún se están procesando todas las fotos, el usuario puede interactuar con el mapa de forma que tengo que quiero parar todos esos hilos pendientes pq la respuesta a la acción del usuario implica dejar de ver el mapa, por lo que elimino el fragment y visualizo el que corresponde. Siendo así e sinnecesario que se sigan procesando los hilos que no han terminado, además de que da error al querer asignar una foto a una etiqueta que ya no existe pq descargué el mapa.

De ahí la pregunta.. ¿cómo mato todos esos hilos?

Gracias un saludo…
preguntado por Nitram Dic 22, 2014 en Android

1 Respuesta

0 votos
Mejor respuesta
Se puede guardar todas las instancias de AsynkTask lanzadas en un ListView para luego recorrerlas e ir llamando al método “cancel()”. Aunque siempre es bueno tener muchos hilos trabajando en paralelo, puede ser un poco contraproducente por tener muchos objetos en memoria; mira a ver si te interesa más crear un solo hilo y a medida que se vayan descargando las imágenes ir dibujándolas en el onPostExecute().
Se me ocurre otra manera, aunque no la he estudiado en profundidad: por teoría de AsynkTas está vinculado a una Activity, por lo que si terminamos la Activity los AsynkTask también.
respondido por Jarroba [Admin] Dic 22, 2014