延时操作,轮训,倒计时,定时等操作说明

1、CountDownTimer  
         CountDownTimer countDownTimer = new CountDownTimer(30000, 1000) {
                                                  // 30000(30秒)倒计时,每1000(1秒)调用一下onTick();

                 @Override
                 public void onTick( long millisUntilFinished) {
                     System. out .println( "到结束还剩下:" + millisUntilFinished);
                }

                 @Override
                 public void onFinish() {
                      long time = System. currentTimeMillis() - currentTimeMillis ;
                     System. out .println( "已结束:用时=" + time);
                }

           };
           countDownTimer.start(); // 开始执行
           countDownTimer.cancel(); // 取消

2、Timer和 TimerTask

           Timer timer = new Timer();
           TimerTask timerTask = new TimerTask() {

                 @Override
                 public void run() {

                }
           };
            // 常用于轮询
           timer .schedule(timerTask , 5000, 2000); // 5000(5秒)后,开始执行第一次run方法,此后每隔2000秒调用一次
            // 常用于延迟操作
           timer.schedule( timerTask, 5000); // 5000(5秒)后,只开始执行一次run方法
            // 取消定时
           timer.cancel();
            // 清理
           timer.purge();
            // 取消任务
            timerTask.cancel();
            // 任务已执行的时间
            timerTask.scheduledExecutionTime();

3、Handler
            //不会阻塞主线程
            handler = new Handler() {

                 @Override
                 public void handleMessag e(Message msg) {
                      super .handleMessage(msg);
                      switch (msg. what ) {
                      case 0:
                            // 执行的方法
                           execute();

                            handler .sendEmptyMessageDelayed(0, 1000); // 执行时间间隔
                            break ;
                     }
                }

                 // 执行的方法
                 private void execute() {

                }

           };
            handler .sendEmptyMessageDelayed(0, 30000); // 延迟多长时间执行


4、 view.postDelayed

           View view = null ;
           view.postDelayed( new Runnable() {

                 @Override
                 public void run() {

                }
           }, 10000);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值