[英]How to update TextView with CountdownTimer onResume?
我想使用倒数计时器,但是有问题。 如果我启动它,然后按“后退”按钮(将生命周期更改为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();
您需要从UI线程更新TextView
。 像这样更新您的TextView
:
runOnUiThread(new Runnable() {
@Override
public void run() {
tvRoutineTimer.setText(getResources().getString(R.string.exercise_rest_timer, minutes, seconds));
});
将runOnUiThread
放在onTick()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.