Java 计时器未更新方法无法正常工作
我想每500毫秒更新一次data()方法,但我下面的计时器更新data()方法的时间超过了4或5秒。谢谢Java 计时器未更新方法无法正常工作,java,timer,Java,Timer,我想每500毫秒更新一次data()方法,但我下面的计时器更新data()方法的时间超过了4或5秒。谢谢 class RemindTask extends TimerTask { public void run() { try { data(); } catch (UnsupportedCommOperationException ex) { Logger.getLogge
class RemindTask extends TimerTask {
public void run() {
try {
data();
} catch (UnsupportedCommOperationException ex) {
Logger.getLogger(test2.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(test2.class.getName()).log(Level.SEVERE, null, ex);
} catch (TooManyListenersException ex) {
Logger.getLogger(test2.class.getName()).log(Level.SEVERE, null, ex);
}
}
定时器触发方法为
private void okActionPerformed(java.awt.event.ActionEvent evt) {
if(evt.getSource()==ok)
{
bul=true;
if(new communication().bul1==false)
{
JOptionPane.showMessageDialog(test2,"GPS CONNECTE");
}
//System.out.print(bd.get);
timer = new Timer();
timer.schedule(new RemindTask(), 500);
}
您使用了错误版本的
计划
方法。第二个参数是延迟,而不是间隔。有关详细信息,请参阅
ScheduledExecutorService
优于Timer
,下面是一个代码示例:
ScheduledExecutorService ses = Executors.newScheduledThreadPool(1);
ses.scheduleAtFixedRate(new RemindTask(), 0, 500, TimeUnit.MILLISECONDS);
您的提醒任务
应该实现可运行
界面:
class RemindTask implements Runnable {
public void run() {
// ...
}
}
另外,请阅读。未收到您的问题。我写了data()方法,希望以500毫秒的间隔继续更新。我为它写了上面的代码,但不能正常工作。这段代码每4秒更新一次我的data()方法,但在参数中我只输入了500毫秒,说明了它发生的原因