PDA

Ver la Versión Completa : Seguir ejecutando en 2do plano


guilleturner
20/06/13, 18:16:39
Hola!!
Estaba queriendo realizar una aplicacion en Adroid, un simple cronometro y me surgio un problema con la aplicacion cuando entra en segundo plano o mas bien el telefono se bloquea (Aclaro que soy totalmente nuevo en esto del desarrollo de aplicaciones en Android).
La idea de la aplicacion es tener un cronometro y poderlo parar, reiniciar, continuar. Para esto cree en un thread separado la ejecucion del digitos del cronometro y con un handler la actualizacion de valores en el layout de la actividad principal. Hasta ahí todo bien, pero al bloquearse el telefono Android suspende de forma automática.
Entiendo que esto lo hace para optimizar la memoria y recursos del CPU, pero en este caso esto provoca que la aplicacion no se comporte de la forma esperada.
En concreto, la consulta es ¿como se puede hacer para que la aplicacion o hilo del cronometro que va registrando el tiempo transcurrido no sea matado por el S.O. de Android?

Muchas gracias,
Ezequiel.

mocelet
20/06/13, 22:14:18
Lo único que tienes que hacer es guardar en algún sitio (un bundle de onSaveInstanceState por ejemplo) cuándo empezó a correr el cronómetro (System.currentTimeMillis).

No te hace falta ningún hilo, solo el handler mientras esté visible (haces la resta al tiempo inicial y ya tienes el tiempo transcurrido). Si no está visible no tienes que hacer nada, simplemente recuperar el valor inicial cuando se vuelva a hacer visible.