정기적으로 AJAX 호출을 사용하여 서버에서 데이터를 가져 와서 그에 따라 UI를 업데이트하려면 Android 앱이 필요합니다 (setText로 업데이트해야하는 TextViews)). 나는 이것에 대한 간단한 AsyncTask를 사용 - 내가 응답을 수신하면Android : AsyncTask를 사용하여 반복 된 Ajax 호출을 수행하는 더 나은 방법
Ajax 호출을 이해 해봐, 그리고 UI를 업데이트 :이 두 작업을 포함한다는
참고.
- 위에서 반복적으로, 정기적 인 간격으로.
성능 향상을 위해 AsyncTask를 반복 호출하는 방법이 두 가지 중 어느 것인지 잘 모르겠습니다.
방법 1 : 내부 에서 onCreate 방법하지만 하나 개 AsyncTask를 요청의 완료 전에 것이이 방법으로 생각하는 문제에서 반복) (실행 호출, 다른 AsynTask 요청이 올 수도 있습니다 (시간을 처리하는 경우 요청은 일정 지연 시간 이상입니다.) 대기열에 많은 요청이있을 수있어 궁극적으로 성능에 해를 끼칠 수 있습니다. 방법 2
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_list_view);
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 {
new AjaxRequestTask().execute(); // Async Call
} catch (Exception e) {
// TODO Auto-generated catch block
}
}
});
}
};
timer.schedule(doAsynchronousTask, 0, 2000); //execute in every 2000 ms
}
다음 내부 의 onPostExecute에서 반복) (실행하지만이 방법으로 생각하는 문제는 재귀 될 모든에 AjaxRequestTask의 새로운 개체를 호출 호출 하나 이전하기 전에 생성됩니다 파괴되고 많은 AsynTask 객체가 메모리에 존재하여 궁극적으로 성능에 해를 끼칠 수있는 상황이 발생할 것입니다.
protected void onPostExecute(String result) {
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 {
new AjaxRequestTask.execute(); // Async Call
} catch (Exception e) {
// TODO Auto-generated catch block
}
}
});
}
};
timer.schedule(doAsynchronousTask, 0, 2000);
}