2011-11-21 21 views

Respuesta

8

En primer lugar, es necesario crear una clase TimerTask:

protected class ReloadWebView extends TimerTask { 
    Activity context; 
    Timer timer; 
    WebView wv; 

    public ReloadWebView(Activity context, int seconds, WebView wv) { 
     this.context = context; 
     this.wv = wv; 

     timer = new Timer(); 
     /* execute the first task after seconds */ 
     timer.schedule(this, 
       seconds * 1000, // initial delay 
       seconds * 1000); // subsequent rate 

     /* if you want to execute the first task immediatly */ 
     /* 
     timer.schedule(this, 
       0,    // initial delay null 
       seconds * 1000); // subsequent rate 
     */ 
    } 

    @Override 
    public void run() { 
     if(context == null || context.isFinishing()) { 
      // Activity killed 
      this.cancel(); 
      return; 
     } 

     context.runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       wv.reload(); 
      } 
     }); 
    } 
} 

En su actividad, puede utilizar esta línea:

new ReloadWebView(this, 60, wv); 
+0

Si este temporizador se ejecuta sólo cuando la aplicación está ¿activo? o el usuario está viendo la interfaz de usuario? – Shan

+0

Este temporizador se elimina solo cuando se mata la actividad; si está activo, si el usuario puede verlo, si está en segundo plano, este temporizador funciona. Puede modificar este comportamiento trabajando en el primer 'si' en el método run() –