Avisos

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

Respuesta
 
Herramientas
  #1  
Viejo 12/11/15, 20:38:37
Array

[xs_avatar]
juxtepuas juxtepuas no está en línea
Usuario poco activo
 
Fecha de registro: nov 2015
Mensajes: 2
Tu operador: Movistar

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
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

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 ;)
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #3  
Viejo 12/11/15, 20:54:42
Array

[xs_avatar]
juxtepuas juxtepuas no está en línea
Usuario poco activo
 
Fecha de registro: nov 2015
Mensajes: 2
Tu operador: Movistar

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
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

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
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
Respuesta

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



Hora actual: 12:56:51 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /