Měli byste naplánovat DownloadJSON
úlohu pravidelně spouštět následovně:
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
}
To by mělo fungovat, ale není to nejúčinnější způsob, protože požadujete celá data znovu a znovu. (Stahuje se spousta dat, která nejsou vyžadována).
Místo toho byste měli pravidelně spouštět úlohu, která zkontroluje, zda na serveru nejsou nějaké nové aktualizace existovat. Pokud server řekne ano.. pak stáhne kompletní seznam.. jinak nějakou dobu čeká a znovu požaduje novou aktualizaci. K tomu však musíte upravit serverové API (takže to můžete zvážit v budoucnu)