欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java 及 js 简单定时器的使用

程序员文章站 2022-06-09 09:27:38
...

两种js定时器介绍
参考引用博文

设置一个定时器,并且设定了一个等待的时间[interval],当到达时间后,执行对应的方法[function],当方法执行完成定时器停止(但是定时器还在,只不过没用了);

window.setTimeout([function],[interval]) 

设置一个定时器,并且设定了一个等待的时间[interval],当到达时间后,执行对应的方法[function],当方法执行完成,定时器并没有停止,以后每隔[interval]这么长的时间都会重新的执行对应的方法[function],直到我们手动清除定时器为止;

window.setInterval([function],[interval])

清除定时器:

window.clearInterval(timer1)/window.clearTimeout(time1);

两种清除方式都可以清除通过setTimeout和setInterval设置的定时器

java 两种定时器的介绍

Timer是一种定时器工具,用来在一个后台线程计划执行指定任务,而TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。
详细介绍参考博文

Timer 类
java 及 js 简单定时器的使用
import java.util.Timer;
import java.util.TimerTask;


/** 
 *  
 *  
 * 在实现时,Timer类可以调度任务,TimerTask则是通过在run()方法里实现具体任务。 Timer实例可以调度多任务,它是线程安全的。 
 * 当Timer的构造器被调用时,它创建了一个线程,这个线程可以用来调度任务。 下面是代码: 
 *  
 * @author GT 
 *  
 */  
public class Task2 {  
    public static void main(String[] args) {  
        TimerTask task = new TimerTask() {  
            @Override  
            public void run() {  
                // 定时任务
                System.out.println("Hello !!!");  
            }  
        };  
        Timer timer = new Timer();  
        long delay = 0;  
        long intevalPeriod = 1 * 1000;  
        //启动定时任务,  
        timer.scheduleAtFixedRate(task, delay, intevalPeriod);  
    } // end of main  
}  

ScheduledExecutorService 可安排在给定的延迟后运行或定期执行的命令。

ScheduledExecutorService类
java 及 js 简单定时器的使用


ScheduledExecutorService service = Executors
                            .newSingleThreadScheduledExecutor();
 // 第二个参数为首次执行的延时时间,
 scheduledFuture = service.schedule(new Runnable() {
 @Override
   public void run() {
     //任务
       netError();
   }
}, 30,  TimeUnit.SECONDS);

  //中断定时器
  scheduledFuture.cancel(true);

android Handler.postDelayed 定时器

private Handler handler = new Handler();

handler.postDelayed(new Runnable() {
@Override
 public void run() {
//跳转支付成功
  Log.e("--InputPasswordActivity","postDelayed");
  Intent intent = new Intent(InputPasswordActivity.this,                        PaySuccessActivity.class);
 startActivity(intent);
 //清除定时器
 handler.removeCallbacks(this);
 finish();
}
},2*1000);