5
Si se puede configurar un temporizador para actualizar la vista web cada 1 min solo si la aplicación está actualmente activa?¿Cómo refrescar WebView en Android usando un temporizador?
Si es posible?
Si se puede configurar un temporizador para actualizar la vista web cada 1 min solo si la aplicación está actualmente activa?¿Cómo refrescar WebView en Android usando un temporizador?
Si es posible?
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);
Si este temporizador se ejecuta sólo cuando la aplicación está ¿activo? o el usuario está viendo la interfaz de usuario? – Shan
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() –