0
我正在制定一个HIIT计时器的方式,有一个'积极'和'休息'期间,将重复任何次数的时间倒计时计时器。我有两个定时器正在运行,但是在我的循环中重新启动定时器,当我调用这个.start时,它启动了两个定时器。倒计时HIIT计时器重新启动计时器
当我点击在Android Studio中this.start,它突出了。开始()调用,我想只有开始上面的“intervals--”
我如何才开始第一个。启动再一次?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
minutesText = (EditText) findViewById(R.id.minutesText);
secondsText = (EditText) findViewById(R.id.secondsText);
startButton = (Button) findViewById(R.id.startButton);
intervalCount = (EditText) findViewById(R.id.intervalCount);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (minutesText.getText().toString().equals("")) {
minutesInt = 0;
} else {
minutesString = minutesText.getText().toString();
minutesInt = Integer.parseInt(minutesString);
}
secondsString = secondsText.getText().toString();
if (secondsText.getText().toString().equals("")) {
secondsInt = 0;
} else {
secondsString = secondsText.getText().toString();
secondsInt = Integer.parseInt(secondsString);
}
if (intervalCount.getText().toString().equals("")) {
intervals = 0;
} else {
intervalsString = intervalCount.getText().toString();
intervals = Integer.parseInt(intervalsString);
}
final int timerAmount = ((minutesInt * 60) + (secondsInt)) * 1000;
Log.i("Hello, ", "intervals are " + intervals);
new CountDownTimer(timerAmount, 1000) {
@RequiresApi(api = Build.VERSION_CODES.N)
public void onTick(long millisUntilFinished) {
activeRunning = true;
String timeLeft = String.format("%02d : %02d",
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))
);
textView.setText("Reamining: " + timeLeft);
}
public void onFinish() {
textView.setText("FINISHED1");
try {
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
r.play();
} catch (Exception e) {
e.printStackTrace();
}
new CountDownTimer(5000, 1000) {
public void onTick(long millisUntilFinished) {
restRunning = true;
activeRunning = false;
String timeLeft = String.format("%02d : %02d",
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))
);
textView.setText("Rest: " + timeLeft);
}
public void onFinish() {
restRunning = false;
textView.setText("FINISHED2");
try {
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
r.play();
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
if (intervals > 0) {
intervals--;
this.start();
}
}
}.start();
intervals--;
}
});
}
}
这是,但我认为它必须是因为它在第一个计时器完成后运行。它嵌套在第一个计时器的onFinish中 –