Android实现倒计时30分钟功能

发布时间 - 2026-01-11 01:07:35    点击率:

以30分钟为例写的一个倒计时:
直接上代码

public class MainActivity extends AppCompatActivity {

  private int minute = 30;//这是分钟
  private int second = 0;//这是分钟后面的秒数。这里是以30分钟为例的,所以,minute是30,second是0
  private TextView timeView;
  private Timer timer;
  private TimerTask timerTask;
  //这是接收回来处理的消息
  private Handler handler = new Handler() {
    public void handleMessage(Message msg) {
      if (minute == 0) {
        if (second == 0) {
          timeView.setText("Time out !");
          if (timer != null) {
            timer.cancel();
            timer = null;
          }
          if (timerTask != null) {
            timerTask = null;
          }
        } else {
          second--;
          if (second >= 10) {
            timeView.setText("0" + minute + ":" + second);
          } else {
            timeView.setText("0" + minute + ":0" + second);
          }
        }
      } else {
        if (second == 0) {
          second = 59;
          minute--;
          if (minute >= 10) {
            timeView.setText(minute + ":" + second);
          } else {
            timeView.setText("0" + minute + ":" + second);
          }
        } else {
          second--;
          if (second >= 10) {
            if (minute >= 10) {
              timeView.setText(minute + ":" + second);
            } else {
              timeView.setText("0" + minute + ":" + second);
            }
          } else {
            if (minute >= 10) {
              timeView.setText(minute + ":0" + second);
            } else {
              timeView.setText("0" + minute + ":0" + second);
            }
          }
        }
      }
    }

  };


  @Override
  protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    timeView = (TextView) findViewById(R.id.tv);

    timeView.setText(minute + ":" + second);

    timerTask = new TimerTask() {

      @Override
      public void run() {
        Message msg = new Message();
        msg.what = 0;
        handler.sendMessage(msg);
      }
    };

    timer = new Timer();
    timer.schedule(timerTask, 0, 1000);

  }

  @Override
  protected void onDestroy() {
    if (timer != null) {
      timer.cancel();
      timer = null;
    }
    if (timerTask != null) {
      timerTask = null;
    }
    minute = -1;
    second = -1;
    super.onDestroy();
  }

  @Override
  protected void onStart() {
    super.onStart();
  }

  @Override
  protected void onStop() {
    super.onStop();
  }

  @Override
  protected void onResume() {
    super.onResume();
  }

  @Override
  protected void onRestart() {
    super.onRestart();
  }

  @Override
  protected void onPause() {
    super.onPause();
  }
}

ok,这就完成了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android  # 倒计时  # android自定义倒计时控件示例  # android实现倒计时功能代码  # Android实现计时与倒计时的常用方法小结  # Android自定义圆形倒计时进度条  # Android实现倒计时方法汇总  # Android启动页面定时跳转的三种方法  # Android利用CountDownTimer实现倒计时功能 Android实现停留5s跳转到登录页  # Android 实现页面跳转  # Android使用Intent实现页面跳转  # Android实现倒计时结束后跳转页面功能  # 这是  # 为例  # 这就  # 大家多多  # 完成了  # TimerTask 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何在IIS管理器中快速创建并配置网站?  如何挑选优质建站一级代理提升网站排名?  详解vue.js组件化开发实践  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  详解MySQL数据库的安装与密码配置  Laravel如何自定义分页视图?(Pagination示例)  北京网站制作公司哪家好一点,北京租房网站有哪些?  ,怎么在广州志愿者网站注册?  如何用已有域名快速搭建网站?  Laravel怎么使用Intervention Image库处理图片上传和缩放  如何安全更换建站之星模板并保留数据?  Laravel如何创建自定义中间件?(Middleware代码示例)  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  如何在IIS中新建站点并配置端口与IP地址?  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Laravel如何记录自定义日志?(Log频道配置)  简历没回改:利用AI润色让你的文字更专业  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  韩国服务器如何优化跨境访问实现高效连接?  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  如何解决hover在ie6中的兼容性问题  免费视频制作网站,更新又快又好的免费电影网站?  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  如何在景安云服务器上绑定域名并配置虚拟主机?  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  如何在阿里云高效完成企业建站全流程?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  开心动漫网站制作软件下载,十分开心动画为何停播?  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  如何在景安服务器上快速搭建个人网站?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  原生JS获取元素集合的子元素宽度实例  如何快速重置建站主机并恢复默认配置?