私はイスラエルでフットボール (サッカー) の審判として働いており、次のシーズンのフィットネス テストをシミュレートするアプリケーションを作成するように依頼されました。テストはインターバルテストで、ユーザーはランニング、ウォーキング、セット数を入力できます。実行を開始/停止するたびにビープ音が鳴ります (beep
変数のタイプは ですMediaPlayer
)。クロノメーターは、ランニング/ウォーキングが終了するたびにリセットされます。
次のコードはほとんど機能します - ビープ音は適切なタイミングで聞こえ、適切なセット数の後に停止しますが、クロノメーターが開始した直後に画面が動かなくなります...
あなたの親切な助けに本当に感謝します! ありがとう、ヤード
private void testLoop() {
int i = 0;
boolean flag = true; //true = running, false = walking
chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.start();
//run, walk, rep = integers that are set by user input
beep.start();
tvRunWalk.setText("Running");
tvRepNum.setText(String.format("Repetition Number: %d", i + 1));
while (i < rep) //rep = number of repetitions
{
if (SystemClock.elapsedRealtime() - chronometer.getBase() == run * 1000 && flag) //if running time is over and you are now running
{
chronometer.setBase(SystemClock.elapsedRealtime());
flag = false;
tvRunWalk.setText("Walking");
beep.start();
}
else if (SystemClock.elapsedRealtime() - chronometer.getBase() == walk * 1000 && !flag) //if walking time is over and you are now walking
{
chronometer.setBase(SystemClock.elapsedRealtime());
flag = true;
i++;
tvRunWalk.setText("Running");
tvRepNum.setText(String.format("Repetition Number: %d", i + 1));
beep.start();
}
}
}