You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确将Android的CountDownTimer设置为10分钟倒计时?

CountDownTimer 10分钟倒计时配置及OTP删除实现

CountDownTimer构造函数的第一个入参是总倒计时时长,单位为毫秒,你当前传入的1000000是错误值,换算后实际为16分40秒,不符合10分钟的需求。

10分钟对应的正确毫秒值计算逻辑:

  • 1秒 = 1000毫秒
  • 1分钟 = 60 * 1000 = 60000毫秒
  • 10分钟总时长 = 10 * 60000 = 600000毫秒

第二个入参1000是倒计时间隔,即每秒触发一次onTick刷新UI,这个配置是正确的。
另外你当前的代码缺少onFinish回调实现,倒计时结束后删除OTP的逻辑需要写在这个回调方法里。

修正后的完整实现代码如下:

new CountDownTimer(600000, 1000) {
    public void onTick(long millisUntilFinished) {
        // 格式化数字为两位数显示
        NumberFormat f = new DecimalFormat("00");
        long min = (millisUntilFinished / 60000) % 60;
        long sec = (millisUntilFinished / 1000) % 60;
        timer.setText("OTP Expires in: " + f.format(min) + ":" + f.format(sec));
    }

    @Override
    public void onFinish() {
        // 倒计时结束后的逻辑
        timer.setText("OTP已过期");
        // 在此处编写删除OTP验证码的业务逻辑,比如清空本地存储的验证码、重置验证入口状态等
        clearLocalOTP();
    }
}.start();

注意:创建完CountDownTimer实例后必须调用start()方法,否则倒计时不会启动。如果承载倒计时的页面(如Activity、Fragment)有销毁生命周期,记得在销毁回调中调用倒计时实例的cancel()方法,避免内存泄漏。

内容的提问来源于stack exchange,提问作者Tech Geek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:48:14