1. java Timer定时器停止该怎么办
private void closeTimer() {
if (timerTask != null) {
timerTask.cancel();
timerTask = null;
}
if (mTimer != null) {
mTimer.cancel();
mTimer = null;
}
}
/**
* 计时操作 改变界面的倒计时信息
*/
private void timerOperation() {
recLen = RECENT_SECOND;
mTimer = new Timer();
timerTask = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
recLen--;
if (recLen >= 0) {
Message msg = new Message();
msg.what = SECOND_UPDATE;
msg.arg1 = recLen;
handler.sendMessage(msg);
}
}
};
mTimer.schele(timerTask, PROGRESS_DELAY, PROGRESS_PERIOD);
}
2. 关于java定时器停止问题Timer类的
楼上的我没有试,但是我可以看出,你这是一个逻辑上的混乱。
1.首先,
if(i==3){
new Test().cancel();
}
你这个i永远都不可能=3,因为你拿到是全局变量i的默认值,而你run() 方法中的i++和这个有什么关系?
2.其次,你的程序永远在执行
t.schele(new Test(),1000,2000);这一句,进入死循环。因为你在不断的调用类中的run方法。永远不会终止。所你按照你的程序来说,应该把判断放在run方法中。加一句
if(i==3){
System.exist(0) ;
}
为什么要用System.exist(0) ;来终止,因为你这是在不断的new内存,如果ruturn终止,只能终止当前线程。不信你可以试试。
3. java定时器
importjava.io.IOException;
importjava.util.Timer;
publicclassTimerTest{
publicstaticvoidmain(String[]args){
Timertimer=newTimer();
timer.schele(newMyTask(),1000,2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.
while(true){//这个是用来停止此任务的,否则就一直循环执行此任务了
try{
intch=System.in.read();
if(ch-'c'==0){
timer.cancel();//使用这个方法退出任务
}
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
staticclassMyTaskextendsjava.util.TimerTask{
@Override
publicvoidrun(){
//TODOAuto-generatedmethodstub
System.out.println("________");
}
}
}
这段代码基本能满足你需求了 你还有需求就在上面再套一层job 当然如过太复杂了而且这种定时需求很多的话 建议用quartz框架 使用很简单
4. java定时器会空转吗
不会。
1、可以采用睡眠,sleep(),比较low。
2、在java类库中已经写好了定时器,java.util.Timer。可以拿来用,用的少,很多高级框架都是支持定时任务的。
5. java定时器怎么停止
1、scheleUpdate
加入当前节点后,程序会每帧都会自动执行一次默认的Update函数。(注:一定是Update函数哦,若想调用其他自己命名的函数则使用schele)
看例子,走起。
首先在HelloWord类的头文件中声明Update函数:
[cpp] view plain print?
void update(float dt); //注意参数类型
然后在HelloWorld类源文件中实现函数Update:
[cpp] view plain print?
void HelloWorld::update(float dt)
{
CCLOG("");
}
现在我们可以调用了,在需要他不断执行的地方加入调用的代码就ok:
[cpp] view plain print?
this->scheleUpdate(); //this是当前节点,如layer,所以可以省略啦。
运行之后你将会看到不断有被打印出来
2、scheleUpdate
可以没隔几秒执行某个自定义的函数,来看代码:
首先还是在HelloWorld中声明所要执行的函数:
6. 问个关于java定时器调整时间设定的问题
定时器启动以后就不能去更改它的时间设定了的,
task.cancel();
用这个方法先停止定时器,然后用新的时间参数开启新的定时器
这样就能解决你的问题了
7. java 关于定时器timer取消任务的提问
定义一个flag变量,比如 boolean flag = true;
循环体里面判断flag为true时继续,否则返回。
再定义一个触发器来控制flag的值即可。
8. java中怎么把定时器关掉
用cancel()方法 停止定时器
9. java类中的定时器
quartz中用有状态的任务,他会在重复执行任务前判断上一次是否已完成。
10. 有关Java定时器的问题
这样改:
public class Test extends java.util.TimerTask{
public int i=0 ;
public static void main(String[] args) {
final Timer t = new Timer();
t.schele(new Test(),1000,2000);
}
public void run() {
System.out.println("sss");
i++;
System.out.println(i);
if(i == 3)
cancel();
}
}