2013-04-18 3 views
0

내가 paymentTaskonPostExecute타이머에 많은 AsyncTask를 실행 (countdowntimer)

public class MyCountDownTimer extends CountDownTimer { 
     public MyCountDownTimer(long startTime, long interval) { 
     super(startTime, interval); 
     } 

     @Override 
     public void onFinish() { 
     //timeout 
     } 

     @Override 
     public void onTick(long millisUntilFinished) { 
     PaymentAsyncTask paymentTask = new PaymentAsyncTask(this); 
     paymentTask.execute(); 

     } 
} 

같은 CountDownTimer을 만들었습니다, 나는 일부 특정 조건에 대한 몇 가지 작업을하고있는 중이 야.

기본적으로 일부 웹 사이트에서 몇 시간 간격 (예 : 3 초)이 지나면 작업이 완료되었는지 확인하고 있습니다. 인터넷이 빠르게 실행하는 경우

이제 작업이 완료됩니다 경우, 내가 onPostExecute에서 타이머를 취소하고 내 추가 작업을 할

이 코드에는 문제가 없다.

그러나 인터넷이 onPostExecute 번 이상이라고 응답 3 초에 오지 않는 것을 의미 느린,,, 작업이 이미 완료 동안 (그것은 더 번 이상 내부에서 코드를 실행 )를 실행하는 경우, 그게 바로 내가 서버 문제/인터넷 지연으로 인해 늦게 응답을 가지고.

onPostExecute 내부의 코드가 한 번만 호출되는 것을 어떻게 확인할 수 있습니까?

가능한 접근 방법 :

  1. 이 일부 정적 플래그 변수를 가지고 사실하고 다른 사람에 확인 ... 내가 신뢰할 수있는 일부 솔루션을 찾고

, 아마 안드로이드가 제공하는 일부 에 대한 메커니즘은이 동기화 .. 감사합니다

답변

관련 문제