美文网首页
定时器和延时处理

定时器和延时处理

作者: 清风笑_e92c | 来源:发表于2018-06-20 16:53 被阅读0次

定时器 :

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();

相关文章

  • 定时器和延时处理

    定时器: 1.Handler类的postDelayed方法: Handler mHandler = new Han...

  • 定时器

    定时器分为两种,一种是延时定时器,另一种是循环定时器。 setTimeout() setTimeout()是延时定...

  • 前端开发常见问题总结

    1、定时器的使用 定时器:延时执行;JS:单线程执行 setTimeout("方法名或方法","延时") setT...

  • js+transition实现字幕无缝滚动效果

    重点是延时器的使用和transition的效果添加和取消 使用setInterval定时器在定时器函数里面判断,当...

  • javascript笔记6

    定时器-间歇性定时器 定时器-延时定时器 认识DOM 间歇性定时器var time = window.setInt...

  • js定时器详解

    延时定时器--只执行一次 周期定时器--重复执行 基础用法

  • golang-定时器

    定时器 和 断续器 定时器:延时某些操作任务断续器:设置的好间隔时间,周而复始的执行任务

  • 定时器的使用01

    关键词:定时器、清除定时器、Date对象、charAt() 定时器:间隔性(setInterval)、延时性(se...

  • 弹性盒子的理解

    清除延时定时器的理解(页面大小变化)

  • js 定时器 执行一次和重复执行

    js 定时器 执行一次和重复执行 1.执行一次(延时定时器) 2.重复执行(间歇定时器) 注意:单纯的使用setI...

网友评论

      本文标题:定时器和延时处理

      本文链接:https://www.haomeiwen.com/subject/dxpxyftx.html