Acceso a Redes de Servicio en Android/Shared Preference y SplashScreen
Alejandro Fernández Semana 7 ¿Qué son los Hilos? Los hilos o thread son los procesos se crean cuando se lanza una aplicación estos a sus vez tienen un hilo principal y este es el encargado del onCreate(), onDraw() etc. Aeste también se le llama Hilo de interfaz de usuario. Todas las actividades y servicios son ejecutadas por el hilo principal el cual cuando hay sobre carga o exigencia se puede ocacionar un bloqueo de este proceso ya que o recurso estarán ocupado, por ejemplo si se eneceita una descarga de internet, si esta no termina el hilo principal no puede continuar con el resto de procesos o lanza el onDraw(). Para solución de esto se debe crear un hilo de ejecución que se encargue de esta labor tan intensa, esto es asegurar y resguardar que el hilo principal, porque este no puede quedar bloqueado. En sisntensis es prioritario evitar este comportamiento y saturación del hilo principal. Para la representación de la imagen anterior y creación de un hilo de ejecución o secundario necesitamos realizar los siguientes pasos: • Extender la clase Thread. • Implementar el médoto run(). • Para actualizar la interfaz de usuario, utilizar el método runOnUiThread(). Como ejemplo en el siguiente código se simula una nueva tarea con una intensidad de 10 seg. asociado al presionar un botón este proceso solo realizara el proceso señalado. Si el código anterior lo integramos en otro porceso, puede apreciar que se ejecutaria de una forma independiente sin afectar el funcionamiento del hilo principal ASYNYASK Como su traducción lo dice tarea asincrónica, es una clase en Android que nos permite ejecutar tareas en segundo plano, esto nos permite iniciar una tarea sin que sea necesario terminar otro proceso en ejecución. Este función como un hilo secuandario o de ejecución como se explicaba con anterioridad, como por el ejemplo la siguiente imagen. Como ejemplo de cracion de asyntask, donde p1, p2, p3 ha de ser una lista de objetos de la clase Parametros, pudiendo introducirse un número variable de parámetros. Ha y que resaltar que execute() es un método asíncrono. Esto significa que, tras llamardo, se pondrá en marcha la tarea en otro hilo, pero en paralelo se continuarán ejecutando las instrucciones que hayas escrito a continuación de execute. En nombre se AsyncTask se ha puesto precisamente por este comportamiento. En el siguiente diagrama se muestra el orden de ejecución de estos métodos: Si estamos realizando una tarea que puede prolongarse en el tiempo, resulta muy importante mostrar al usuario cuando empieza, su progreso y cuando termina. En el siguiente ejercicio vamos a ver un ejemplo algo más complejo de AsyncTask, donde usaremos la clase ProgressDialog para mostrar la evolución de la tarea.