2016-10-04 2 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); 
     } 
    }; 

私は実行を開始するには、以下のコードを持っています:

handler.postDelayed(runnable, 0); 

インデックス0に対応するので、最初のメソッドが呼び出されます最初に他の方法が続いた。そして同じことを繰り返すのに500msの遅延があります。

しかし、メソッド呼び出しの間に500msの遅延が必要です。 forループが実行されるときを意味します。ハンドラと実行可能ファイルを1つだけ使用するにはどうすればよいですか?メソッドコールの間に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変数にそれを比較するあなたがゼロでpostDelayed()を起動する必要はありませんでしょう遅れても、post()に直接電話することができます。

+0

あなたは大歓迎です:) –

関連する問題