Я пишу приложение для тренировки и пытаюсь реализовать таймер отдыха в действии Train
. CountDownTimer
, расположенный в пределах Train
и вызывается, когда пользователь нажимает кнопку запуска.Обновление TextView с таймером onTick после ухода и возврата к активности
public CountDownTimer createTimer(long timerDuration) {
Log.d("new timer duration:", "value: " + timerDuration);
return new CountDownTimer(timerDuration, 1000) {
@Override
public void onTick(long millisUntilFinished) {
int progress = (int) (millisUntilFinished/1000);
secondsLeftOnTimer = progress; // update variable for rest of app to access
// Update the output text
breakTimerOutput.setText(secondsToString(progress));
}
@Override
public void onFinish() { // Play a beep on timer finish
breakTimerOutput.setText(secondsToString(timerDurationSeconds));
playAlertSound(); // TODO: Fix the delay before playing beep.
}
}.start();
}
Таймер работает, до тех пор, пока пользователь остается в Train
деятельности. Если вы переключитесь на другое действие, таймер продолжает работать в фоновом режиме (звуковой сигнал все еще происходит), и это то, что я хочу. Однако, если вы вернетесь к работе в поезде, то breakTimerOutput
TextView больше не обновляется onTick
.
Как я могу «повторно подключить» breakTimerOutput
к onTick
, когда пользователь снова входит в действие Train
?
Here is the full code for the activity, just in case.
Считаете ли вы onPause и onResume вашей деятельности поезда? –
У меня нет, но это идея. По существу ли я буду хранить таймер при выходе из этой активности? Я новичок в программировании на Android, поэтому я немного ржавчу, как можно было бы справиться с чем-то подобным. –