2016-10-04 5 views
0

나는 일정한 간격으로 메서드를 호출하기 위해 handler와 runnable을 사용하는 방법을 안다. 하지만 이제는 일정한 간격으로 하나 이상의 메소드를 호출하려고합니다. 아래는 내 클래스 중 하나의 코드는 다음과 같습니다핸들러를 사용하여 정기적으로 둘 이상의 메소드를 호출하는 방법은 무엇입니까?

private Handler handler = new Handler(); 
private Runnable runnable = new Runnable() { 
     @Override 
     public void run() { 
      for(int index = 0; index < count; index++) { 
        //Do something based on the index value 
      } 
      handler.postDelayed(runnable, 500); 
     } 
    }; 

어딘가에 내 코드에서 나는 실행을 시작하는 아래의 코드를해야합니다 : 그래서 인덱스 0에 해당하는 첫 번째 방법은 호출됩니다

handler.postDelayed(runnable, 0); 

을 먼저 다른 방법이 뒤 따른다. 그리고 같은 것을 반복하기 위해 500ms의 지연이있을 것입니다.

그러나 메소드 호출간에 500ms 지연이 필요합니다. for 루프가 실행될 때를 의미합니다. 핸들러와 실행 파일을 하나만 사용하여 어떻게 할 수 있습니까? 메서드 호출간에 500ms 지연을 유도하려면 어떻게해야합니까?

답변

1

나 자신 indexHandler에서 호출의 값을 업데이트하고 시작,

private Handler handler = new Handler(); 
private Runnable runnable = new Runnable() { 
    private int index = 0; 

    @Override 
    public void run() { 
     //Do something based on the index value 
     index++; 
     if (index < count) { 
      handler.postDelayed(runnable, 500); 
     } else { 
      count = 0; 
     } 
    } 
} 

게다가 단지 for 루프처럼 count 변수에 비교하면 0으로 postDelayed()를 호출 할 필요가 없습니다 것입니다 지연되면 post() 번으로 직접 전화 할 수 있습니다.

+0

가장 환영합니다. :) –