Java 在一定的秒数后执行几行程序
我想在几秒钟后执行几行程序。如何做到这一点 我已经试过了,但没用。灯应该在一定的秒数后打开和关闭 初学者程序很抱歉,如果这是一个愚蠢的问题Java 在一定的秒数后执行几行程序,java,timer,Java,Timer,我想在几秒钟后执行几行程序。如何做到这一点 我已经试过了,但没用。灯应该在一定的秒数后打开和关闭 初学者程序很抱歉,如果这是一个愚蠢的问题 package io.github.zeroone3010.yahueapi; import org.omg.PortableServer.POAManagerPackage.State; import java.util.*; public class looptest { public static void main(String args
package io.github.zeroone3010.yahueapi;
import org.omg.PortableServer.POAManagerPackage.State;
import java.util.*;
public class looptest
{
public static void main(String args[])
{
final String bridgeIp = "ip";
final String apiKey = "key";
final Hue hue = new Hue(bridgeIp, apiKey);
final Room room = hue.getRoomByName("Woonkamer").get();
int counter = 0;
boolean loop;
Timer timer = new Timer();
new java.util.Timer().schedule(
new java.util.TimerTask()
{
int secondsPassed = 0 ;
public void run()
{
secondsPassed++;
System.out.println(secondsPassed);
room.getLightByName("Tv 1").get().turnOn();
if (secondsPassed > 3) // after 3 seconds tv 2 on
room.getLightByName("Tv 2").get().turnOn();
if (secondsPassed > 11) // after 11 seconds tv 1 and 2 off
room.getLightByName("Tv 1").get().turnOff();
room.getLightByName("Tv 2").get().turnOff();
}
},
5000
};
{
我理解您的意图是:
- 立即打开“Tv 1”灯
- 3秒钟后打开“Tv 2”灯
- 11秒后关闭“Tv 1”和“Tv 2”灯
room.getLightByName("Tv 1").get().turnOn();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
room.getLightByName("Tv 2").get().turnOn();
}
}, 3000L);
timer.schedule(new TimerTask() {
@Override
public void run() {
room.getLightByName("Tv 1").get().turnOff();
room.getLightByName("Tv 2").get().turnOff();
}
}, 11000L);
我希望它能有所帮助。我可以看到您的代码中有语法错误。您没有关闭计时器。正确地安排(),使用大括号}代替括号)。请更新它
new java.util.Timer().schedule(
new java.util.TimerTask()
{
public void run()
{
//........
}
},
5000
);
Snipplet:Java TimerTask示例
import java.util.Timer;
import java.util.TimerTask;
class Main {
public static void main(String[] args) {
System.out.println("Timer Sample!");
long delayInMilliSeconds = 5000;
Timer timer = new Timer();
timer.schedule(new java.util.TimerTask(){
int secondsPassed = 0 ;
public void run()
{
System.out.println("Executed after the delay");
timer.cancel();
}
},delayInMilliSeconds);
System.out.println("Task run after "+ delayInMilliSeconds +" ms");
}
}
您好@MrBlik,谢谢您的邀请。您能解释一下您在代码中使用
定时器的位置吗?