我有以下问题: 我正在用java编写一个聊天机器人,我想调用一个方法,甚至x分钟。 所以我读到“Timer.Schedule”就是我需要的。所以我写了以下方法:
public function timerMethod()
{
int time = 10;
...
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
timerMethod();
}
}, 1000 * 60 * time // 1MSec * 1Sec * xMin
);
}
一开始,循环工作正常,但几个小时后(我认为是 10-15 小时后),循环不再工作...... 我不知道为什么我不工作并且没有收到任何错误消息:(
有人可以帮我吗???
最佳答案
所以您希望代码运行 x 分钟,对吗?
如果是这样,请将您希望代码运行的时间转换为毫秒,如下所示:1 分钟 = 60000 毫秒。有一个名为 System.currentTimeMillis() 的方法,它将返回自 EPOCH 日期(1970 年 1 月 1 日)起的毫秒值。
您可以像这样使用 while 循环:
`
int msTime = 60000; //1 Minute = 60000 MS
int doUntil = ms + System.currentTimeMillis(); //1 minute
while(System.currentTimeMillis() != doUntil)
{
//Code here
System.out.println(¨Hello World¨); //This will print Ḧello World for 60000ms
}
关于Java Timer.Schedule(无限循环)停止运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46834756/