私のコードは何ですか:私のアクティビティには、ユーザがボタンを押したときに開始するCountDownTimer
があります。完了すると、サウンドが再生されます。ここでは、コードです:CountDownTimerの内部で定期的にメソッドを呼び出すにはどうすればよいですか?
public class PrepTimer extends CountDownTimer {
public PrepTimer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
updateSessionRemaining(millisUntilFinished);
setPrepDigits(millisUntilFinished);
}
@Override
public void onFinish() {
session.setPrepRemaining(0);
playSound();
}
}
私はそれが何をしたいのですがどのような:私は音が(末尾に加えて)、タイマーの経過とともに、定期的にプレーしたいと思います。たとえば、10分のタイマーでは、音が60秒ごとに再生されることがあります。私が試した
もの:
millisUntilFinished
が一定値(例えば60秒の倍数)に等しいときにチェックするためにonTick
メソッド内if
ステートメントを使用して、実行しています方法。これは最も単純な解決策のようですが、メソッドが一貫して起動されていないことがわかりました(恐らくmillisUntilFinished
は私がそれをチェックしている値をスキップしていますか?)。- 別のネストされた
CountDownTimers
を作成し、ループでfor
ループを繰り返す。これの問題は、コードがすぐに過度に複雑になり、私の直感からタイマー内でタイマーを実行すべきではないということです。
質問: CountDownTimerの過程で定期的にメソッドを実行するにはどうすればよいですか?代わりに、あなたは、単にポストを使用することができますカウントダウンタイマーを使用しての
最初のアプローチを使用してもう少し寛容にしてください。 60秒以内にテストしないでください。現在の60秒の間隔で再生されたサウンドかどうかをテストします。 – tynn
いいアイデア@tynn。私はあなたがサウンドを再生したいと思う 'tick間隔 'を持つ別のタイマーを作ろうと考えていました。また、' onFinish'もサウンドを再生することができます。私はこれが実行可能な解決策だと思います。 – Vucko