sql >> Base de Datos >  >> RDS >> Mysql

Android listview actualizar/actualizar datos sin cerrar la aplicación

Debes programar tu DownloadJSON tarea para ejecutar periódicamente de la siguiente manera:

public void callAsynchronousTask() {
    final Handler handler = new Handler();
    Timer timer = new Timer();
    TimerTask doAsynchronousTask = new TimerTask() {
        @Override
        public void run() {
            handler.post(new Runnable() {
                public void run() {
                    try {
                        DownloadJSON performBackgroundTask = new DownloadJSON();
                        performBackgroundTask.execute();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    };
    timer.schedule(doAsynchronousTask, 0, 10000); //execute in every 10 sec
}

Esto debería funcionar, sin embargo, no es la forma más eficiente ya que está solicitando todos los datos una y otra vez. (Se están descargando muchos datos que no son necesarios).

En su lugar, debe ejecutar una tarea periódicamente que verifique el servidor si hay nuevas actualizaciones. existir. Si el servidor dice que sí... entonces obtiene la lista completa... de lo contrario, espera un tiempo y solicita una nueva actualización nuevamente. Pero para esto necesitas modificar la API del servidor (para que puedas considerar esto en el futuro)