码迷,mamicode.com
首页 > 移动开发 > 详细

Android计数器的实现(倒计时)

时间:2015-07-28 17:50:59      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

安卓实现计数器有四种方式,直接给代码

1、使用Thread+Handler

private int number = 0;

private Handler handler1 = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        tvNumber.setText(msg.what + "");
    }
};

private void counter1() {
    number = 4;new Thread() {
        public void run() {
            while (number >= 0) {
                Message msg = handler1.obtainMessage();
                msg.what = number;
                handler1.sendMessage(msg);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                number--;// 数字
            }
        };
    }.start();
}

2、仅使用Handler

private void counter2() {
    Message msg = handler2.obtainMessage();
    msg.what = 4;
    handler2.sendMessageDelayed(msg, 1000);
}

Handler handler2 = new Handler() { 
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        int num = msg.what;
        tvNumber.setText(num + "");
        if (num > 0) {
            num--;
            Message message = handler2.obtainMessage();
            message.what = num;
            handler2.sendMessageDelayed(message, 1000);
        }
    };
};

3、使用android.os.CountDownTimer类实现

private void counter3() {
    new CountDownTimer(5000, 1000) {
        public void onTick(long millisUntilFinished) {
            tvNumber.setText(millisUntilFinished / 1000 + "");
        }

        public void onFinish() {
            tvNumber.setText("0");
        }
    }.start();
}

4、使用Timer+handler

private int number = 0;

private TimerTask timerTask;

private Timer timer;

private void counter4() {
    number = 4;
    timerTask = new TimerTask() {

        @Override
        public void run() {
            if(number >= 0){
                Message msg = handler1.obtainMessage();
                msg.what = number;
                handler1.sendMessage(msg);
                number --;
            }
        }
    };

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

 

Android计数器的实现(倒计时)

标签:

原文地址:http://www.cnblogs.com/pear-lemon/p/4683039.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!