美文网首页Android开发
Android中几种常用的定时器

Android中几种常用的定时器

作者: 涛涛123759 | 来源:发表于2018-06-01 09:26 被阅读120次

一、三种常用的定时器

1.Handler类的postDelayed方法:

    final 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方法:

    final 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方法:

   final 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 timer = new Timer();
    timer.schedule(new TimerTask() {
        @Override
        public void run() {
            //do something
        }
    },1000);//延时1s执行

3.Thread方法:

    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                Thread.sleep(1000);//延时1s
                //do something
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }).start();

自带定时器 CountDownTimer

      CountDownTimer  countDownTimer = new CountDownTimer(totalTime, 2000) {
            @Override
            public void onTick(long millisUntilFinished) {
                updateFileData(fileId);  //执行任务
            }

            @Override
            public void onFinish() {
                if (User.getInstance().isLoginIng()) {
                    if (countDownTimer != null) {
                        countDownTimer.start();
                    }
                }
            }
        };
        countDownTimer.start();

相关文章

  • Android中几种常用的定时器

    一、三种常用的定时器 1.Handler类的postDelayed方法: 2.用handler+timer+tim...

  • NSProxy&NSTimer

    原文链接 开发过程中我们必不可少的需要接触定时器,在iOS中,常用的定时器有以下几种: GCD Timer CAD...

  • Android 界面的基本属性

    Android 界面的常用基本属性 布局: 在 android 中我们常用的布局方式有这么几种: 1.Linear...

  • android定时任务

    Android中几种定时器的总结和比较 - 爱悠闲 采用Handler与线程的sleep(long)方法 采用H...

  • AndroidStudio项目的目录结构

    在Android Studio中,提供了以下几种项目结构类型 我们常用的是两类Project和Android结构,...

  • iOS 中的几种常用定时器

    在软件开发过程中,常常会遇到在某个时间或按照某个周期来执行一些任务,在这个时候,就会用到定时器。这里总结了 iOS...

  • java定时器

    定时器是java很常用的一个功能,最近写项目时常用,在此记录下常用的几种方法,以备复习之用。

  • iOS中的定时器

    定时器是开发中常用一中工具,定时器常用的为NSTimer,CADisplayLink以及GCD定时器 NSTime...

  • Android:compileSdkVersion、buildT

    Android开发常用的几种 Version compileSdkVersion buildToolsVersio...

  • GCD定时器使用

    iOS中的常用定时器分为这几类: NSTimer CADisplayLink GCD定时器 选择GCD定时器原因:...

网友评论

    本文标题:Android中几种常用的定时器

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