DownloadJSON
をスケジュールする必要があります 次のように定期的に実行するタスク:
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
}
ただし、これは機能するはずですが、データ全体を何度も要求しているため、これは最も効率的な方法ではありません。 (ダウンロードされている必要のないデータがたくさんあります。)
代わりに、サーバーをチェックするタスクを定期的に実行して、新しい更新があるかどうかを確認する必要があります。 存在。サーバーが「はい」と答えた場合は、完全なリストを取得します。それ以外の場合は、しばらく待機して、新しい更新を再度要求します。ただし、このためには、サーバーAPIを変更する必要があります(将来的にこれを検討できるようにするため)