Procesos largos.

Slides:



Advertisements
Presentaciones similares
Cetis No. 119 Profa. Graciela Prado Becerra
Advertisements

Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
EXCEL 2010 CONCEPTOS BÁSICOS. SOFTWARE HOJAS DE CÁLCULO Calc una poderosa hoja de cálculo con todas las herramientas necesarias para calcular, analizar.
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
TEMA: Introducción a la informática.. Objetivos  Explicar los conceptos fundamentales relacionados con la computación.  Explicar la forma de representar.
CÁLCULO DE ÁREA.
Clase 1.  Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones.
Herramientas de oficina: hoja de cálculo Excel Castillo Navarro Adolfo y González Bello Edgar Oswaldo (2010). Herramientas de oficina: hoja de cálculo.
1 Lenguaje de Programación Clase 1 Alberto Huamani Escobar
Tipos de aplicaciones en Visual Studio. Índice Introducción Introducción Aplicaciones instaladas Aplicaciones instaladas Aplicaciones Web Aplicaciones.
Sesión n.1 fundamentos de programación scripting en praat.
Clase 3: primeros programas (1ª parte) iic1102 – introducción a la programación.
Proyecto Final Nutrición y Calculo En Las Diferentes Etapas De La Vida Sosa Medellín María Candelaria Nutrición y Calculo En Las Diferentes Etapas De La.
MODELO ADDIE Módulo 2. 1.Fundamentos teóricos ADDIE Análisis Diseño Desarrollo Implementación Evaluación Prototipación rápida 2.Actividad de clase.
Estadística Conceptos Básicos.
Sistemas numéricos.
MANEJO DE TEXTO Y OBJETOS AVANZADOS ENCABEZADOS Y PIES DE PÁGINA
Media.
TERMINOLOGÍA BÁSICA Informática: conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático y racional de la información,
Diagrama de Flujo de Datos (DFD)
. Primera Open Class Asignatura: Programación Estructurada Tema:
LECCIONES DE PROGRAMACION INTERMEDIAS
Olimpiadas Chilenas de Informática - Formación
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Título proyecto Introducción Implementación / Pruebas Objetivos
Datapath para las instrucciones aritméticas y lógicas
LECCIONES DE PROGRAMACION INTERMEDIAS
LECCION 2.- FRACCIONES Y DECIMALES EN LA RECTA NUMERICA
LECCIONES DE PROGRAMACION INTERMEDIAS
3.- Ventana de propiedades del Menú de inicio y barra de tareas
Métodos en Java.
Hello Android.
Actualizando el Software y Firmware
Conversiones de números binarios a octal y hexadecimal
Sensores.
COMPUTER DATA SYSTEMS CDS.
Rosalba María Delgado Martínez Tecnología en Gestión Administrativa
Interfaces Gráficas de Usuario
MarÍa del c. vÉlez Quinto grado
Alarmas.
FACTORY METHOD Creación a nivel de clases.
Unidad 3. Introducción a la programación
Ing. RIgoberto Castro Hdez
¿QUE ÉS SOFTWARE? Se conoce como software al equipamiento lógico o soporte lógico de un sistema informático, el que comprende el conjunto de los componentes.
Cibercultura Pierre Levy.
GLOSARIO TIC- HERRAMIENTA TAREAS
GRAFICADORES Y HOJAS ELECTRÓNICAS
LECCIONES DE PROGRAMACION INTERMEDIAS
Sole Documentos Digitales®
Herramientas Entorno Web
Cuartiles, deciles, percentiles.
MEDICIONES Y PROCESAMIENTO DE DATOS
OBJETIVOS Definir el “índice de seguridad hospitalaria” y sus alcances. Describir los pasos para el cálculo del índice de seguridad hospitalario utilizando.
¿Qué es y qué hace un computador?
Resultado de Aprendizaje:1
Optimización de Procesos.
Unidad 3: Libre Office Calc
Nombre del Docente: María Guadalupe Salazar Chapa
Diego Hernández R Algoritmos Diego Hernández R
Diego Hernández R Algoritmos Diego Hernández R
Intents (intenciones)
Dialogs.
“Lenguaje de Programación” Rogelio Ferreira Escutia
INDICADORES DE DESEMPEÑO
Introducción a la Computación Numérica
Controles de lista.
Objetos con linea de ejecucion propia
1º de Primaria.
SISTEMAS OPERATIVOS JOSE ANGEL MORENO B. Ingeniero de Sistemas TP # Copnia Universidad Incca de Colombia CORPORACI Ó N UNIVERSITARIA REMINGTON.
Objetivo de ejemplo Inspiración Acciones / tareas Recursos Reflexión
Transcripción de la presentación:

Procesos largos

Créditos Tutorial https://developer.android.com/guide/components/processes-and-threads.html1 1 Content is licensed under Creative Commons Attribution 2.5 Universidad de Sonora

Hilo principal Por default, todos los componentes de una aplicación corren en el mismo hilo (hilo principal – main thread). La interface de usuario (UI) también corre en el hilo principal. Es importante no bloquear el hilo principal. Ejemplos de procesos largos: Cálculos numéricos. Bajar un archivo remoto. Accesar una página web externa. Universidad de Sonora

ANR dialog ANR - Application Not Responding Universidad de Sonora

Solución genérica Correr el proceso largo en otro hilo. Universidad de Sonora

Primer intento Problema: accesar elementos de la UI fuera del hilo principal genera comportamiento indefinido e inesperado. Universidad de Sonora

Soluciones específicas View.post(Runnable); View.postDelayed(Runnable, long); Clase AsyncTask Universidad de Sonora

View.post(Runnable) Universidad de Sonora

AsyncTask Ejecuta el proceso largo y publica el resultado en el hilo principal. Lo mínimo es extender la clase AsyncTask e implementar doInBackground(). Para actualizar la UI se implementa onPostExecute() que corre en el hilo principal y recibe los resultados de doInBackground(). Para correr se crea un objeto de tipo AsyncTask y se llama a execute(). Universidad de Sonora

AsyncTask Universidad de Sonora

Explicación class Foo extends AsyncTask<Tipo1, Tipo2, Tipo3> Tipo1 – tipo del argumento en doInBackGround(). Tipo2 – tipo del argumento para reportar el progreso, o Void si no se usa. Tipo3 – tipo del objeto regresado por doInBackground() y que se pasa como argumento a onPostExecute(), o Void si no se usa. doInBackground() corre en otro hilo. onPreExecute(), onPostExecute(), y onProgressUpdate() corren en el hilo principal. Universidad de Sonora

Explicación El valor regresado por doInBackground() se envía a onPostExecute(). Se puede llamar a publishProgress() en cualquier momento en doInBackground() para ejecutar a onProgressUpdate() en el hilo principal. Se puede cancelar la tarea en cualquier momento desde cualquier hilo. Universidad de Sonora

Ejemplo Universidad de Sonora

Ejemplo Para ejecutar la tarea anterior. Universidad de Sonora

Ejemplo Calcular PI con 100 dígitos decimales usando la fórmula de John Machin. Dónde el arcotangente se aproxima mediante una serie de Taylor: Universidad de Sonora

Versiones Se programan 3 versiones: Original – el proceso largo se ejecuta en el hilo principal. Hilo – el proceso largo se ejecuta en otro hilo. AsyncTask – el proceso largo se ejecuta en un objeto AsyncTask. Universidad de Sonora

BigDecimal Maneja números con signo y precisión arbitraria. El valor se representa por un “valor sin escala” de precisión arbitraria y una “escala” con signo de 32 bits. La escala es el número de dígitos después del punto decimal. Hay métodos para hacer las operaciones básicas. Se puede definir la forma de redondear (i.e. hacia arriba, hacia abajo, etc.) Universidad de Sonora

Layout Universidad de Sonora

Layout Universidad de Sonora

Calcular PI Universidad de Sonora

Calcular arctan(x) Universidad de Sonora

Versión original El proceso largo corre en el hilo principal. Universidad de Sonora

Versión con hilo Universidad de Sonora

Versión con hilo Universidad de Sonora

Versión con AsyncTask Universidad de Sonora

Versión con AsyncTask Nota: el método computePI va dentro de esta clase. Universidad de Sonora

Versión con AsyncTask Callback del botón en la actividad principal. Universidad de Sonora