Android笔记之四种方式实现计时器

来源:互联网 发布:数控切割机编程代码 编辑:程序博客网 时间:2024/05/01 03:46

第一种

new Thread(){@Overridepublic void run() {// TODO Auto-generated method stubsuper.run();if (data > 0) {data--;try {sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(data +"S");}else {data = 0;System.out.println("重新获取");}}}.start();

第二种
使用handler的sendMessageDelayed方法实现:

Message msg=handler.obtainMessage(10);handler.sendMessageDelayed(msg, 1000);
Handler handler = new Handler(){    public void handleMessage(android.os.Message msg) {    if(data > 0){       if(msg.what==10){               System.err.println(data + "S");       }       Message message=handler.obtainMessage(10);      handler.sendMessageDelayed(message, 1000);      data--;   }else{      System.err.println("重新获取");    }  };};

第三种
使用封装的CountDownTimer实现,这种方式最简单,代码实现也最少

new CountDownTimer (60000, 1000) {    public void onTick(long millisUntilFinished) {}

第四种
用到Timer

private TimerTask timerTask;private Timer timer;private void startTimer() {// TODO Auto-generated method stubtimerTask = new TimerTask() {    @Override    public void run() {         Message msg = new Message();         msg.what = 0;         handler.sendMessage(msg);      }};timer = new Timer();timer.schedule(timerTask, 0, 1000);}/*** button计时的操作*/private int second = 60;private Handler handler = new Handler() {    public void handleMessage(Message msg) {        if(second >= 1) {            System.out.println(second +"S");            second--;        } else {            System.out.println("重新获取");            timer.cancel();        }    };};
0 0