`

Timer和TimerTask的应用

阅读更多

Timer和TimerTask的应用

 

java.util.Timer 是JDK自带的一个定时器类。

 

Timer timer = new Timer(); // new一个定时器对象

CallRMITask callRMITask = new CallRMITask(); // new一个TimerTask对象

timer.schedule(callRMITask, 0, 3 * 1000); // 定时器立即执行该task任务,且每隔3秒钟后执行一次。(具体方法参数含义可以参照JDK API)

 

java.util.TimerTask 是JDK自带的一个任务类。

 

我们在使用时只需继承该类,且重写其中的run()方法即可。run()体内的操作就是我们所要定时执行的任务。上述中 CallRMITask类即为一个继承了TimerTask的类。( CallRMITask extends TimerTask

 

注意:

        当timer对象执行schedule方法之后是不会自动停止的,那么我们怎样来停止当前循环执行的任务呢?答案很简单,执行timer.cancel();即可停止当前定时器。那么又有一个问题出现了,当我们在循环执行任务时怎么知道什么时候才可以去执行cancel方法呢?答案同样也很简单,再写一个StopTask extends TimerTask子类,该类专门用来守护之前的任务,其run方法体仅仅只是一行代码:timer.cancel(); 例如我们想要上述的任务在执行完三次之后自动停止,那么就可以这么写: timer.schedule(stopTask, 3 * 1000 * 2); 这样timer定时器即可在执行完三次任务之后自动停止,从而达到一个定时器自动开关的效果。具体Timer类的各个方法及参数的含义大家可以参照JDK API。

 

 

 

 

 

 

分享到:
评论

相关推荐

    java中timer用法

    不过,标准的调度类 Timer 和 TimerTask 没有足够的灵活性,无法支持通常需要的计划任务类型。在本文中,Java 开发人员 Tom White 向您展示了如何构建一个简单通用的计划框架,以用于执行任意复杂的计划任务。

    在 Java 应用程序中定时执行任务.doc

    不过,标准的调度类 Timer 和 TimerTask 没有足够的灵活性,无法支持通常需要的计划任务类型。在本文中,Java 开发人员 Tom White 向您展示了如何构建一个简单通用的计划框架,以用于执行任意复杂的计划任务。

    Android TimerTask 的简单应用及注意事项

    主要介绍了Android TimerTask 的简单应用及注意事项的相关资料,需要的朋友可以参考下

    Java 应用程序中定时执行任务的定时器框架

    所有类型的 Java 应用程序一般都需要计划重复执行的任务。...不过,标准的调度类 Timer 和 TimerTask 没有足够的灵活性,无法支持通常需要的计划任务类型。在本资源中包含框架构造过程和java源代码,欢迎下载。

    java 定时器任务timer 随tomcat启动而启动 同步启动

    我们通常写的timer都是用main方法写的定时器,但同样我们也需要根据服务器启动后定时器也启动的 定时执行任务。不过有个致命伤就是集群方面跟quartz不能比,此方法代码做参考不错,如果要用,那么这个方法在一台...

    后台定时定位开机自启系统.zip

    后台定时定位开机自启系统android 类库中, 虽然已经提供了几种...1. 定时的发送定位请求,首先需要 定时器 Timer 和 TimerTask ,来定时地发送定位请求; 2. 在定位的回调函数里,将定位获取的信息保存到本地   

    Spring3.x企业应用开发实战(完整版) part1

    13.4.1 Timer和TimerTask 13.4.2 Spring对JDK Timer的支持 13.5 Spring对JDK 5.0 Executor的支持 13.5.1 了解JDK 5.0的Executor 13.5.2 Spring对Executor所提供的抽象 13.6 实际应用中的任务调度 13.6.1 如何产生...

    Spring.3.x企业应用开发实战(完整版).part2

    13.4.1 Timer和TimerTask 13.4.2 Spring对JDK Timer的支持 13.5 Spring对JDK 5.0 Executor的支持 13.5.1 了解JDK 5.0的Executor 13.5.2 Spring对Executor所提供的抽象 13.6 实际应用中的任务调度 13.6.1 如何产生...

    Android 双击Back键退出应用的实现方法

    Android 双击Back键退出应用的...Timer 对象的 schedule( ) 方法需要一个 TimerTask 对象和一个时间长度(毫秒)作为参数。TimerTask 对象需要重写它的 run( )方法,当 Timer 执行延时任务时,则会执行 TimerTask 的

    应用启动页自定义跳转计时器View Demo

    应用启动页自定义跳转计时器View Demo: CircleTextProgressbar.java: package com.demo.startpageskiptimerdemo.widget; import android.content.Context; import android.content.res.ColorStateList; import ...

    Java典型模块

    8.3.1 Timer和TimerTask类 8.3.2 shutdown命令 8.3.3 通过shutdown命令实现网络远程关机 8.4 小结 第3篇 GUI(图形用户界面)开发 第9章 典型的图形用户界面(各种组件) 9.1 Label和Button的用户界面 9.1.1 分析...

    Java并发编程(学习笔记).xmind

    应用场景:当两方执行不对称的操作(读和取) 线程池 任务与执行策略之间的隐形耦合 线程饥饿死锁 运行时间较长的任务 设置线程池的大小 配置ThreadPoolExecutor 构造参数 corePoolSize ...

    Spring定时器

    让应用程序定时执行某个任务. 从Java 1.3开始,Java SDK就通过java.util.Timer类提供了基本的调度功能。这个类允许你调度一个任务(通过java.util.TimerTask子类定义)按任意周期运行。

    Android延迟实现的几种解决方法及原理分析

    在Android开发中我们可能会有延时执行某个操作的需求,例如我们启动应用的时候,一开始呈现的是一个引导页面,过了两三秒后,会自动跳转到主界面。这就是一个延时操作。 而写这篇文章的目的,是看到群里有人在实现...

    开源框架 Spring Gossip

    认识 Spring 来认识 Spring 的一些特性,并初步了解一下什么叫作 IoC... 使用 TimerTask 使用 MethodInvokingTimerTaskFactoryBean 使用 Quartz 使用 MethodInvokingJobDetailFactoryBean

Global site tag (gtag.js) - Google Analytics