美文网首页
Android 定时器

Android 定时器

作者: JacksonMrwang | 来源:发表于2019-05-13 20:06 被阅读0次

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

相关文章

  • Timer 实现倒计时功能

    Android 定时器 在Android开发中有些任务是需要通过延时来完成的,这个时候就用到了定时器Timer

  • 支付

    android微信支付问题总结 - CSDN博客 Android中定时器的3种实现方法 - CSDN博客 Andr...

  • Android 定时器

    1.Handler类的postDelayed方法: 2.用handler+timer+timeTask方法: 3....

  • Android定时器AlarmManager

    AlarmManager是Android的全局定时器。就是在指定时间做一个事情(封装在PendingIntent)...

  • android定时任务

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

  • Android定时任务

    参考:Android中定时器的3种实现方法 Thread.sleep java的方式,不推荐sleep使线程暂停,...

  • 2017.12.21学习总结

    下午学习了定时器,定时器分为高级定时器、通用定时器和基本定时器,我们主要研究通用定时器。 定时器中断实现步骤:...

  • AlarmManager+Notification实现定时通知提

    AlarmManager简介 AlarmManager实质是一个全局的定时器,是Android中常用的一种系统级别...

  • Android_定时器

    一、三种常用的定时器 : 1.handler+timer的方法: 2、handler+线程的方法: 3、Handl...

  • Android-定时器

    一、AlarmManager介绍 AlarmManager提供了对系统定时服务的访问接口,使得开发者可以安排在未来...

网友评论

      本文标题:Android 定时器

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