miércoles, 28 de agosto de 2013

Android: Llamar a una función cada X segundos

Buenos días hoy vamos a ver de manera muy rápida un proceso con Timer para que llame a una función cada X segundos. Nota: la manera que se expone aquí es totalmente funcional aunque no es la manera más óptima, la mejor manera sería así http://adf.ly/UjFoz aunque como veréis es bastante más compleja. Si no eres un experto recomiendo la de este post.

Como siempre a partir de ahora al final del tutorial dejare el link de descarga del proyecto. Muchas gracias!
Veamos el código como siempre totalmente comentado:



protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  //Creamos el Timer
  Timer timer = new Timer();
  //Que actue cada 3000 milisegundos
  //Empezando des de el segundo 0
  timer.scheduleAtFixedRate(new TimerTask() {
   @Override
   public void run() {
    //La función que queremos ejecutar
    FuncionParaEsteHilo();
   }
  }, 0, 5000);
  
  
 }
 
 private void FuncionParaEsteHilo()
 {
     //Esta función es llamada des de dentro del Timer
  //Para no provocar errores ejecutamos el Accion
  //Dentro del mismo Hilo
     this.runOnUiThread(Accion);
 }

 private Runnable Accion = new Runnable() {
     public void run() {
     //Aquí iría lo que queramos que haga,
     //en este caso mostrar un mensaje.
     Toast.makeText(getApplicationContext(), "Tiempo!", Toast.LENGTH_LONG).show();
     }
 };

Para descargar el proyecto hacer click en el siguiente link:


Muchas gracias! espero vuestros comentarios!!

2 comentarios: