En este ejercicio modificacaremos la aplicación Threading-NoThreading para que realice la operación de carga de la imagen utilizando un Worker Thread.

Modificar el método onClick() para dejarlo asi:

public void onClick(View v) {
    loadIcon();
}

En el método LoadIcon() crear un Runnable para ejecutar el código que en el ejemplo ThreadingNoThreading es ejecutado en el método LoadIcon() además de la asignación del Bitmap a la vista.

Crear también un objeto Thread y pasarle el Runnable como parámetro.

Llamar al método .start() del nuevo Thread.

Ejecutar la aplicación y ver qué pasa.

Modificar lo necesario para que en el LogCat aparezca la secuencia de llamadas al nuevo Thread. Usar el TAG definido. Asignar un nombre al Thread y que el Log lo muestre. Tras la ejecución buscar en el Log el mensaje.

Como véis la aplicación no funciona porque el código que intenta asignar la imagen lo hace desde el Worker Thread, con lo que falla. Esto debe hacerse desde el UI-Thead, para ello realizamos otro ejercicio.

ThreadingSimplePost

Modificar lo necesario para que la aplicación ThreadingSimple funcione, es decir, usando el método .post de la clase mImageView.

Mostrar un mensaje en el LogCat por la ejecución de cada Runnable que sea necesario.

Os dejo el código del ejercicio resuelto


Contenido para usuarios registrados