Du bör schemalägga din DownloadJSON
uppgift att köras med jämna mellanrum enligt följande:
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
}
Detta borde fungera men det är inte det mest effektiva sättet eftersom du begär hela data om och om igen. (Det finns massor av data som laddas ner som inte krävs).
Istället bör du köra en uppgift med jämna mellanrum som kontrollerar servern om några nya uppdateringar existera. Om servern säger ja.. så hämtar den hela listan.. annars väntar den ett tag och begär ny uppdatering igen. Men för detta måste du ändra serverns API (så att du kan överväga detta i framtiden)