Du bør planlægge din DownloadJSON
opgave at køre periodisk som følger:
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
}
Dette burde fungere, men det er ikke den mest effektive måde, da du anmoder om alle data igen og igen. (Der downloades masser af data, som ikke er påkrævet).
I stedet bør du køre en opgave med jævne mellemrum, der tjekker serveren, hvis der er nogen nye opdateringer eksisterer. Hvis serveren siger ja.. så henter den hele listen.. ellers venter den et stykke tid og anmoder om ny opdatering igen. Men for dette skal du ændre server-API'en (så du kan overveje dette i fremtiden)