java Timer定时器停止的问题

我开启了多少个java定时器,就是TimerTask停止,我不知道如何停止指定的某个定时器。timer.cancel();这个无法控制。怎么处理?... 我开启了多少个java定时器,就是TimerTask 停止,我不知道如何停止指定的某个定时器。 timer.cancel(); 这个无法控制。

怎么处理?
展开
 我来答
百度网友f4bb65c
2010-07-29 · TA获得超过476个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:258万
展开全部
为每个TimerTask创建不同的Timer对象,想停止某个Timer直接调用其cancel()方法 ,写个小例子
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Test{
public static void main(String args[]) throws InterruptedException {
TimerTask task1=new TimerTask(){
public void run() {
// TODO Auto-generated method stub
System.out.println("task1");
}
};
TimerTask task2=new TimerTask(){
public void run() {
// TODO Auto-generated method stub
System.out.println("task2");
}
};
Timer t1=new Timer();
Timer t2=new Timer();
t1.schedule(task1, new Date(), 1000);//每隔一秒输出
t2.schedule(task2, new Date(), 1000);//每隔一秒输出
Thread.sleep(5000);//等待5秒
t1.cancel();//停止定时器t1
Thread.sleep(5000);//等待5秒
t2.cancel();//停止定时器t2
}
}
曾达奎65
推荐于2018-03-13
知道答主
回答量:5
采纳率:100%
帮助的人:4729
展开全部
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.schedule(timerTask, PROGRESS_DELAY, PROGRESS_PERIOD);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SkyerTu
2010-07-29 · TA获得超过1822个赞
知道小有建树答主
回答量:552
采纳率:0%
帮助的人:1190万
展开全部
保存每个TimerTask的引用,然后在需要停止时调用timerTask.cancel();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式