zoukankan      html  css  js  c++  java
  • Android计时器

    1.Handler类的postDelayed方法:
    
             Handler mHandler = new Handler();
                     Runnable r = new Runnable() {
    
                        @Override
                        public void run() {
                                //do something
                                //每隔1s循环执行run方法
                                mHandler.postDelayed(this, 1000);
                        }
                    };
    
    
    主线程中调用:  mHandler.postDelayed(r, 100);//延时100毫秒
    
    2.用handler+timer+timeTask方法:
    
          Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                if (msg.what == 1){
                    //do something
                }
                super.handleMessage(msg);
            }
        };
    
        Timer timer = new Timer();
        TimerTask timerTask = new TimerTask() {
            @Override
            public void run() {
                Message message = new Message();
                message.what = 1;
                handler.sendMessage(message);
            }
        };
     主线程中调用:timer.schedule(timerTask,1000,500);//延时1s,每隔500毫秒执行一次run方法
    
    3.Thread+handler方法:
    
     Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                if (msg.what == 1){
                    //do something
                }
                super.handleMessage(msg);
    
            }
        };
    
        class MyThread extends Thread {//这里也可用Runnable接口实现
            @Override
            public void run() {
                while (true){
                    try {
                        Thread.sleep(1000);//每隔1s执行一次
                        Message msg = new Message();
                        msg.what = 1;
                        handler.sendMessage(msg);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
    
                }
            }
        }
    主线程中调用:new Thread(new MyThread()).start();
    二、三种延时的快捷方法: 
    1.Handler的postDelayed方法:
    
    new Handler().postDelayed(new Runnable() {
    
            @Override
            public void run() {
                  //do something
              }
           }, 1000);    //延时1s执行
    
    2.timer + TimerTask方法:
    
                     timer = new Timer();
                     timer.schedule(new TimerTask() {                   
                        @Override
                        public void run() {
                              //do something
                        }
                    },1000);//延时1s执行
    
    3.Thread方法:
    
            new Thread(new MyThread()).start();
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1000);//延时1s
                        //do something
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }).start();
    

      

  • 相关阅读:
    获取数据——爬取某微博评论
    使用Microsoft Power BI进行基本的数据分析
    Hadoop分布式文件系统
    使用Visual Studio开发Python
    ML:吴恩达 机器学习 课程笔记(Week5~6)
    ML:吴恩达 机器学习 课程笔记(Week7~8)
    ML:吴恩达 机器学习 课程笔记(Week9~10)
    知乎用户报告
    ML:多变量代价函数和梯度下降(Linear Regression with Multiple Variables)
    ML:吴恩达 机器学习 课程笔记(Week1~2)
  • 原文地址:https://www.cnblogs.com/yc123456/p/7750309.html
Copyright © 2011-2022 走看看