Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 12/11/15, 20:38:37
Avatar de juxtepuas
juxtepuas juxtepuas no está en línea
Usuario poco activo
Mensajes: 2
 
Fecha de registro: nov 2015
Mensajes: 2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Delay entre setText y actualización de la pantalla

Muy buenas!

Seguramente debe ser algo muy básico, pero llevo horas haciendo pruebas y no logro resolverlo.

Estoy desarrollando una aplicación en la cual, cuando el usuario clica, deben actualizarse una serie de datos en la pantalla en función de ese clic, y seguidamente se realizan unos cálculos internos antes de actualizarse de nuevo la pantalla.

El caso es que, según he leído, pasa un tiempo entre la llamada del setText (por ejemplo) y la actualización del valor en la pantalla del dispositivo, y antes de que se lleve a cabo la actualización en la pantalla se ejecutan las siguientes líneas de código.

Sabéis alguna manera de conseguir que el código no siga ejecutándose hasta que se complete la actualización en la pantalla? He probado de poner un Thread.sleep (2000L) justo después del setText, pero no consigo nada.

Muchas gracias de antemano!
Responder Con Cita


  #2  
Viejo 12/11/15, 20:44:01
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Llama al invalidate() del textview después de hacer setText.

Si no es eso es que estás bloqueando el hilo principal y los cálculos deberías hacerlos en otro hilo o en una asynctask.

P.D.: Precisamente tu intento de hacer Thread.sleep es un ejemplo de bloquear el hilo principal, uno de los mayores pecados en Android ;)
Responder Con Cita
  #3  
Viejo 12/11/15, 20:54:42
Avatar de juxtepuas
juxtepuas juxtepuas no está en línea
Usuario poco activo
Mensajes: 2
 
Fecha de registro: nov 2015
Mensajes: 2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Ostras, desconocía esta información. Muchas gracias!

Para llamar al invalidate() del TextView, sabes cómo debería llevarse a cabo?

Gracias de nuevo!

Cita:
Originalmente Escrito por mocelet Ver Mensaje
Llama al invalidate() del textview después de hacer setText.

Si no es eso es que estás bloqueando el hilo principal y los cálculos deberías hacerlos en otro hilo o en una asynctask.

P.D.: Precisamente tu intento de hacer Thread.sleep es un ejemplo de bloquear el hilo principal, uno de los mayores pecados en Android ;)
Responder Con Cita
  #4  
Viejo 12/11/15, 21:05:29
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Igual que haces setText haz invalidate, pero ese no es tu problema por lo que cuentas.

El problema es que haces cálculos en el hilo principal y hasta que no dejes de usar el hilo principal Android no puede pintar la pantalla.

Esos cálculos que haces hazlos en una AsyncTask
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 21:16:02 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007