Powinieneś zaplanować swój DownloadJSON
zadanie uruchamiane okresowo w następujący sposób:
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
}
Powinno to działać, ale nie jest to najskuteczniejszy sposób, ponieważ ciągle żądasz całych danych. (Pobieranych jest wiele danych, które nie są wymagane).
Zamiast tego powinieneś okresowo uruchamiać zadanie, które sprawdza serwer, czy są jakieś nowe aktualizacje istnieć. Jeśli serwer mówi tak... to pobiera pełną listę.. w przeciwnym razie czeka trochę czasu i ponownie prosi o nową aktualizację. Ale w tym celu musisz zmodyfikować API serwera (abyś mógł rozważyć to w przyszłości)