2017-09-09 7 views
0

forループでカウントダウンタイマーを実行しようとしていましたが、カウントダウンタイマーの代わりにカウントダウンタイマーを使用してコードを実行していますonTick()メソッドでは、onTick()メソッド内のすべてのコードが遅れなく即座に実行されます。これを解決する方法、または私が達成しようとしていることに対する代替的なアプローチ?私はあなたが()を達成しようとしているが、それはlyric.timeinMillisに到達するまで、あなたのonTick()メソッドは毎秒を実行することになっているものではない100%をクリアしていますforループでカウントダウンタイマーを実行すると、タイミングがうまくいかない

public void runFromString(String theString, final TextView textView) { 
    for (final Lyric lyric : lyricArrayList(theString)) { 
     final int[] j = {0}; 
     new CountDownTimer(lyric.timeInMillis(), 1000) { 
      @Override 
      public void onTick(long l) { 
       if (j[0] == 0) { 
        textView.setText(lyric.getLyricText()); 
        j[0] = 1; 
       } 
      } 

      @Override 
      public void onFinish() { 
       textView.setText(""); 
       j[0] = 0; 
      } 
     }.start(); 
    } 
} 
+0

遅れて何をしようとしていますか?そして '(j [0] == 0)'は常に真実になりますか? – codeMagic

答えて

1

: はここに私のコードです。あなたの条件に基づいて、初めて(ベクトルの最初のセルを1に変更するので)初めて実行されます。

関連する問題