Android——定时任务

Android定时任务

每隔固定时间,执行重复的规律操作。一般常用刷新UI等操作。
现在一般有一下几种方法:
1:Thread.sleep(int millisecond)
2:Timer及TimerTask相结合。
3:Handler.postDelayed(Runnable, long)
4:MyCountDownTimer(long millisInFuture, long countDownInterval)

具体实现:

1:Thread.sleep(int millisecond)
Thread.sleep是线程的暂停方法,单独可以实现延迟的操作,如果在Runable 接口实现,就可以通过线程的方法多次实现类似于定时任务的操作。

单独实现:

private void runMethod(){
    //开始操作
    //...
    //延迟一秒实现
    Thread.sleep(1000);
    //后续操作

}

定时任务实现:
1:实现Runable接口

public class MyRunable implements Runnable {  
    @Override  
    public void run() {  
        // TODO Auto-generated method stub  
        while (true) { //这里写判断方法,实现条件 
            try {  
                Thread.sleep(10000);// 线程暂停10秒,单位毫秒  
                //定时操作,以刷新UI为例,用Handle刷新
                handler.sendEmptyMessage(0x00);// 发送空消息  
            } catch (InterruptedException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  
        }  
    }  
}  

2:Handle实现

private Handler myHandler;//定义Handle全局变量

myHandler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
    //具体实现
    }

2.Timer及TimerTask相结合
1:新建Time
Timer myTimer = new Timer();

2:新建TimeTask

TimerTask myTimerTask = new TimerTask() {
    public synchronized void run() {

    }
};

3:Timer .schedule实现定时任务

//TimerTask :需要执行的Task。
//delay :延迟时间
//period 间隔时间
Timer.schedule(TimerTask task, long delay, long period);    

myTimer.schedule(myTimerTask,0L,180000);

3:Handler.postDelayed实现

开始需要Handle对象和Runable对象,沿用上面的。

开始启动定时器:

myHandler.postDelayed(Runnable runable, int millisecond);

取消定时器:

myHandler.removeCallbacks(Runnable runnable); 

4:CountDownTimer实现

直接新建CountDownTimer(long millisInFuture, long countDownInterval)对象,会继承相应方法,

//一共执行60秒,每1秒执行一次
new CountDownTimer(60000, 1000) {
    @Override
     public void onTick(long millisUntilFinished) {
     //每次执行任务
     //...
     }

    @Override
    public void onFinish() {
         //执行结束事件
         //...
     }
}.start();

各自优缺点:

Thread.sleep()方法结合Runable,需要外部参数判断来控制结束。不能直接通过时间来控制。
Timer及TimerTask 结合的方法功能强大,可以延迟和定时。
Handler.postDelayed,可延迟,定时执行任务。
CountDownTimer只能实现,不可延迟,并且有执行完成的回调方法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值