-------
android培训、
java培训、期待与您交流! ----------
public class TraditionalTimerTest {
/**
* 定时器的使用
*/
static int count=0;
public static void main(String[] args) {
//传统的定时器的创建方式
//第一种普通的:在指定的时间干一件事情(只干一次)
// new Timer().schedule(new TimerTask(){
// @Override
// public void run() {
// System.out.println("bombing");
// }
// }, 3000);
//第二种:在指定的时间干了一件事情之后然后再过一段时间再干这件事情(循环执行)
// new Timer().schedule(new TimerTask(){
// @Override
// public void run() {
// System.out.println("bombing");
// }
// }, 10000,2000); //10秒之后执行一下这个代码,然后以后每过2秒再执行这个代码
// //我们想实现子母弹的效果,即在定时器中还有定时器:
// new Timer().schedule(new TimerTask(){
// @Override
// public void run() {
// System.out.println("bombing");
// new Timer().schedule(this, 2000); //我们不可以使用不同的定时器执行同一个任务
// //我们该如何操作了?
// //这里使用的匿名对象,它执行完之后就被系统的GC给回收处理了。
// //所以我们再使用的时候这个对象是不存在的。即TimerTask执行一次之后它就不存在了
// //我们做一个类继承TimerTask。然后在TimerTask的run方法中再创建一个新的定时器
// }
// }, 2000); //10秒之后执行一下这个代码,然后以后每过2秒再执行这个代码
// //我们想实现子母弹的效果,即在定时器中还有定时器:
//交替执行的操作
// class MyTimerTask extends TimerTask{ //写一个TimerTask的子类,把任务封装在这个类里面
// @Override
// public void run() {
// System.out.println("bombing");
// //在它的这个里面再创建一个定时器
// new Timer().schedule(new MyTimerTask(), 2000); //然后再创建一个定时器执行相同的任务
// }
// }
//
// new Timer().schedule(new MyTimerTask(),2000);
//创建一个定时器定时执行一个任务:在它干一件事情的基础再让它定时干事情
/*26
27
bombing
28
29
bombing*/
//我们想实现这样的效果,就是让任务先毎2秒执行一下,然后再毎4秒执行一下,然后再每2秒执行一下,然后再每4秒执行一下
class MyTimerTask extends TimerTask{ //写一个TimerTask的子类,把任务封装在这个类里面
@Override
public void run() {
count=(count+1)%2; //0+1%2=1,1+1%2=0 这样就可以实现交互执行了
System.out.println("bombing");
//在它的这个里面再创建一个定时器
new Timer().schedule(new MyTimerTask(), 2000+2000*count); //然后再创建一个定时器执行相同的任务
}
}
new Timer().schedule(new MyTimerTask(),2000);
//这样的话我们就需要计算出一个类创建对象的个数
//我们可以使用static来做。要么就做两个定时器。然后,在A的定时器的run方法中创建一个新的定时器调用B
//然后在B的定时器的run方法的代码中创建一个新的定时器调用A
/**
* 58
59
bombing
0
1
2
3
bombing
*/
//不停的打印当前的系统:秒
while(true){
try {
Thread.sleep(1000); //隔一秒打印一下秒值
} catch (InterruptedException e) {
e.printStackTrace();
}//休眠100毫秒
System.out.println(new Date().getSeconds() );
}
}
}