Mysql
 sql >> Database >  >> RDS >> Mysql

Android listview aggiorna/aggiorna i dati senza chiudere l'app

Dovresti programmare il tuo DownloadJSON attività da eseguire periodicamente come segue:

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
}

Questo dovrebbe funzionare, tuttavia non è il modo più efficiente poiché richiedi tutti i dati ancora e ancora. (Sono stati scaricati molti dati che non sono richiesti).

Dovresti invece eseguire periodicamente un'attività che controlli il server se sono presenti nuovi aggiornamenti esistere. Se il server dice di sì.. allora recupera l'elenco completo.. altrimenti attende un po' di tempo e richiede di nuovo un nuovo aggiornamento. Ma per questo devi modificare l'API del server (quindi puoi considerarlo in futuro)