Antes que nada ... separa la lógica de actualización de tu método onCreate
. Entonces, por ejemplo, puede crear un updateHTML()
.
A continuación, se puede utilizar un Timer
con el fin de actualizar periódicamente la página:
public class YourActivity extends Activity {
private Timer autoUpdate;
public void onCreate(Bundle b){
super.onCreate(b);
// whatever you have here
}
@Override
public void onResume() {
super.onResume();
autoUpdate = new Timer();
autoUpdate.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
updateHTML();
}
});
}
}, 0, 40000); // updates each 40 secs
}
private void updateHTML(){
// your logic here
}
@Override
public void onPause() {
autoUpdate.cancel();
super.onPause();
}
}
en cuenta que estoy cancelando la tarea de actualización en , y que en este caso el método updateHTML
se ejecuta cada 40 segundos (40000 milisegundos). Además, asegúrese de importar estas dos clases: java.util.Timer
y java.util.TimerTask
.
Tengo una pregunta de seguimiento. Cambié mi aplicación para tener 2 pestañas. Cada pestaña comienza su propia actividad. La primera pestaña usa la actividad descrita arriba. Después de que agregué la actualización periódica a esa pestaña/actividad, hay un retraso bastante grande cuando intento cambiar a la otra pestaña. ¿Sería mejor resolver esto usando vistas en cada pestaña? En ese caso, ¿cómo hago para que solo una de las pestañas/vistas se actualice periódicamente? – Raffe
hola me quedé atascado con el mismo problema si la respuesta a continuación es resolver su problema, ¿puede proporcionar el código? He examinado el código, pero parece que algo va mal ... es demasiado urgente para cualquier ayuda ... :) :) usted puede envíeme un correo electrónico a [email protected] – Sumant