2013-11-09 2 views
4

업데이트 : 20/11/13 : 아직 해결되지 않았습니다.onFinish() CountDownTimer 메서드가 너무 깁니다.

나는 CountDownTimer을 만들고 있는데 onFinish() 방법에서, 나는 마지막 두 번째와 마지막 사이의 지연이 1 초 (틱 사이의 지연)보다 오래 걸리는 것처럼 너무 많은 작업을하고있는 것으로 보인다.

이것은 내 코드입니다.

mCountDownTimer = new CountDownTimer(GAME_LENGTH, 1000) { 

public void onTick(long millisUntilFinished) { 
       mCountDownTextView.setText("" + millisUntilFinished/1000); 
      } 

      public void onFinish() { 
       mCountDownTextView.setText("Game Over!"); 
       tl.setOnTouchListener(null); 
       for (DotView dv : mAllDots) { 
        dv.setChangingColors(false, null, -1); // This is my own method 
       } 
       } 

질문 :은 영향을받지 끝에서 두 번째와 마지막 틱 사이의 실제 타이밍없이 CountDownTimeronFinish() 방법에 잠재적으로 긴 실행 작업을을 수행 할 수있는 방법이 있습니까?

답변

1

나는 똑같은 문제가있어서 onFinish()의 코드가이 문제의 원인이라고 생각하지 않습니다.

대신 (millisUntilFinished/1000 == 1) 일 때 작업 수행시 문제가 발생했습니다.

또한 mCountDownTextView.setText(String.valueOf((millisUntilFinished/1000) - 1))을 사용하여 텍스트 뷰를 1 초 오프셋했습니다.