2016-09-27 3 views
-3

아이디어가 있으면 타이머가 기간 배열을 기반으로 일정을 잡고 한 번 완료되면 기간 배열이 다시 처음부터 시작됩니다. 이 루프에서 완벽하게 작동하는 것은 충돌과 arrayoutofboundsexception을 통해 발생합니다. 어떤 지팡이도 도와주세요 ???타이머가 안드로이드에서 제대로 작동하지 않습니다.

int[] duration={10000,2000,8000}; 
int layoutIncrment=-1; 
private void layoutRotate() 
{ layoutIncrment++; 
    Timer timer = new Timer(); 
    timer.schedule(new TimerTask() 
    { public void run() 
     { 
      if((duration.length-1) <= layoutIncrment) 
       layoutIncrment=-1; 

      layoutRotate(); 
      Log.i("Rotation",String.valueOf(layoutIncrment)); 
    } },duration[layoutIncrment],100000); 
} 
+0

내가 그 행에 무슨 문제가 있는지 알 수 있습니까? –

+0

나는 모든 루핑을 해답을 얻었습니다. 그렇지 않으면 모든 타이머가 살아있는 단계에 있습니다. –

답변

0

왜 이렇게 해보시겠습니까? while 루프에서 계속 실행됩니다 .. thats only u want. 권리?

int n=1; 

    while(n>0) 
    { 
    for(int i=0;i<duration.length;i++) 
    { 

    new Handler().postDelayed(new Runnable() { 
    @Override 
    public void run() { 
    //add ur code here 
    } 
    }, duration[i]); 
    } 
    } 
+0

작동하지 않습니다.이 예제는 계속 반복됩니다. 한 기간에서 다른 기간까지 지연을 원합니다. 일단 길이가 완료되면 첫 번째 지속 시간부터 시작됩니다. –

+0

대신 핸들러를 사용하십시오. –

+0

루프에 대해 처리기 또는 타이머를 넣으면 연속적으로 실행되는 루프에서 루프 간 지연이 발생하지 않습니다. –

관련 문제