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)