Bạn nên lên lịch cho DownloadJSON
của mình nhiệm vụ chạy định kỳ như sau:
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
}
Điều này sẽ hoạt động tuy nhiên nó không phải là cách hiệu quả nhất vì bạn đang yêu cầu toàn bộ dữ liệu lặp đi lặp lại. (Có rất nhiều dữ liệu đang được tải xuống mà không cần thiết).
Thay vào đó, bạn nên chạy một tác vụ định kỳ để kiểm tra máy chủ nếu có bản cập nhật mới hiện hữu. Nếu máy chủ nói có .. thì nó sẽ tìm nạp danh sách đầy đủ .. nếu không nó sẽ đợi một thời gian và yêu cầu cập nhật mới một lần nữa. Nhưng đối với điều này, bạn cần phải sửa đổi API máy chủ (vì vậy bạn có thể xem xét điều này trong tương lai)