为了账号安全,请及时绑定邮箱和手机立即绑定

Android中实现计时的几种方式

标签:
Android

1、使用CountDownTimer

private void TimerFun(){

    final CountDownTimer countDownTimer = new CountDownTimer(60000,1000) {

        @Override

        public void onTick(long l) {

            //倒计时每秒的回调

            mainBinding.tvUp.setText(l/1000+"");

        }

        @Override

        public void onFinish() {

            //倒计时结束

        }

    };

    countDownTimer.start();

}

2,使用 Handler + Thread

private boolean isOk = true;

private int time = 59;

private Handler handler = new Handler(){

    public void handleMessage(android.os.Message msg) {

        if(msg.what == 0){

            mainBinding.tvDown.setText("" + time);

            time--;

            if(time<=0){

                isOk = false;

            }

        }

    };

};

private void TimerFun2(){

    new Thread(){

        @Override

        public void run() {

            while(isOk){

                try {

                    Thread.sleep(1000);

                    handler.sendEmptyMessage(0);

                } catch (InterruptedException e) {

                    e.printStackTrace();

                }

            }

        }

    }.start();

}

3、使用属性动画(经过对比,发现属性动画倒计时不准确)

 private void TimerFun3(){

        ValueAnimator valueAnimator = ValueAnimator.ofInt(60000,0);

        valueAnimator.setDuration(60000);

        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

            @Override

            public void onAnimationUpdate(ValueAnimator valueAnimator) {

                int value = (int)(valueAnimator.getAnimatedValue());

                mainBinding.tvMiddle.setText(value/1000+"");

            }

        });

        valueAnimator.start();

    }

原文链接:http://www.apkbus.com/blog-455907-62436.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消