Home Menu

Menu



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 28/10/13, 20:28:03
Avatar de st4rw0lf
st4rw0lf st4rw0lf no está en línea
Usuario muy activo
Mensajes: 1,165
 
Fecha de registro: abr 2013
Mensajes: 1,165
Modelo de smartphone: LG G2 / Huawei Y300-0100 / iPhone 4
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
Temporizador

Buenas noches, desde hace un par de días estoy con el android studio comiéndome la cabeza para poner una cuenta atrás para que si no haces ninguna acción en X segundos te redirija a otra pantalla.
Os agradecería que ayudarais con alguna idea de como hacerlo y así investigar
Muchas gracias a todos.
Responder Con Cita


  #2  
Viejo 28/10/13, 21:52: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
Yo lo hago con un handler y el método handler.sendMessageDelayed(...) con el tiempo que le pongas y algo que identifique el mensaje (yo tengo una variable, llamémosla TIMEOUT_MESSAGE de tipo int que vale 1).

En el onCreate tengo esto:
Código:
        handler = new Handler(){
			@Override
			public void handleMessage(Message msg) {
				super.handleMessage(msg);
				if (msg.what == TIMEOUT_MESSAGE){
					// Lo que quieras hacer
				}
			}
        };
Luego tengo un startTimer y un stopTimers (tengo más temporizadores)

Código:
 
        private void startTimer(){
		handler.sendMessageDelayed(handler.obtainMessage(TIMEOUT_MESSAGE), TIEMPO_QUE_SEA);
	}

	private void stopTimers(){
		if (handler != null){
			handler.removeMessages(TIMEOUT_MESSAGE);
		}
	}
Si el usuario hace algo, se para la actividad o lo que sea paras el timer con stopTimers y ya está.

En el onResume por ejemplo lo inicias con startTimer.

Supongo que me habré dejado algo porque he hecho medio copy-paste de una de mis apps, pero la idea es esa, aprovecharse del handler para enviar mensajitos. Lo bueno del handler es que funciona en el hilo principal, así que puedes hacer de todo en el método handleMessage.
Responder Con Cita
  #3  
Viejo 28/10/13, 23:25:02
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Muy bueno Mocelet, yo lo hago de una forma muchísimo más compleja, esto me lo apunto para a partir de ahora hacerlo así.
Responder Con Cita
  #4  
Viejo 28/10/13, 23:52:03
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
Gracias, desde que descubrí los handlers los uso todo lo que puedo
Otra cosa, para la cuenta atrás es trivial añadir los ticks del contador para actualizar un textview, basta definir otro tipo de mensaje (TICK_MESSAGE con valor 2 por ejemplo) y lanzarlo cada segundo (en mi app como la cuenta es de 5 segundos los programo de golpe: un tick en el momento, otro en 1 segundo, otro en 2... , y a los 5 el mensaje de timeout).
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: 06:45:48 (GMT +1)

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