Mysql
 sql >> Base de données >  >> RDS >> Mysql

android listview mettre à jour/actualiser les données sans fermer l'application

Vous devez programmer votre DownloadJSON tâche à exécuter périodiquement comme suit :

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
}

Cela devrait fonctionner, mais ce n'est pas la manière la plus efficace car vous demandez encore et encore toutes les données. (Il y a beaucoup de données en cours de téléchargement qui ne sont pas nécessaires).

Au lieu de cela, vous devez exécuter périodiquement une tâche qui vérifie le serveur s'il y a de nouvelles mises à jour exister. Si le serveur dit oui .. alors il récupère la liste complète .. sinon il attend un certain temps et demande à nouveau une nouvelle mise à jour. Mais pour cela, vous devez modifier l'API du serveur (afin que vous puissiez l'envisager à l'avenir)