【发布时间】:2016-08-22 20:13:50
【问题描述】:
我想使用倒数计时器,但遇到了问题。如果我启动它然后按下后退按钮(将生命周期更改为 onStop)并返回活动 - 我无法在 TextView 中看到计时器值。但在 Logcat 中,我看到计时器有效。
问题:如何在活动返回后更新TextView(onResume)
更新。 虽然我不会关闭活动,但此代码可以正常工作 - 很好。但是如果我按下后退按钮,TextView 中没有值。 定时器方法代码(该方法从onCreate调用):
timer = new CountDownTimer(rest + 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
secondsUntilFinish = Math.round(millisUntilFinished / 1000);
String minutes = String.format("%02d",TimeUnit.SECONDS.toMinutes(secondsUntilFinish));
String seconds = String.format("%02d",TimeUnit.SECONDS.toSeconds(secondsUntilFinish) - TimeUnit.MINUTES.toSeconds(TimeUnit.SECONDS.toMinutes(secondsUntilFinish)));
tvRoutineTimer.setText(getResources().getString(R.string.exercise_rest_timer, minutes, seconds));
Log.d(LOG_TAG, "onTick = " + getResources().getString(R.string.exercise_rest_timer, minutes, seconds));
}
@Override
public void onFinish() {
tvRoutineProgress.setText(getString(R.string.routine_progress, currentStep, totalSteps));
tvRoutineTimer.setText(getString(R.string.exercise_rest_timer, "00", "00"));
notificationAfterRest();
btnExerciseDone.setText(getString(R.string.button_exercise_done));
btnExerciseDone.setEnabled(true);
tvExercisePlaceholder.setText(getString(R.string.exercise_current_title));
}
}.start();
【问题讨论】:
-
如果您发布一些代码,帮助会容易得多。
-
@Pztar,完成。说你是否需要看更多
-
您在
TextView上看到了什么?旧值还是什么都没有? -
@Pztar,它向我显示了完成后的最终值。
tvRoutineTimer ("00:00");