一尘不染

GWT:计时器和计划程序类

java

我已经阅读了几次此页面,只是没有看到GWT
TimerScheduler类之间的某些固有差异。我正在寻找以下各项的用例和适用性:

  • TimerTimer::scheduleTimer::scheduleRepeating
  • Scheduler::scheduleDeferred
  • Scheduler::scheduleIncremental
  • IncrementalCommand
  • DeferredCommand

这些似乎或多或少都在做着相同的事情,感觉您可以使用所有这些东西实现相同的目标。这仅仅是GWT的一种方式,提供了多种完成同一件事的方式吗?如果没有,请帮助我了解何时何地适当使用它们。


阅读 248

收藏
2020-09-08

共1个答案

一尘不染

如果需要浏览器完成当前正在执行的操作,然后再告诉它执行其他操作,请使用 Scheduler 。例如:

myDialogBox.show();
Scheduler.get().scheduleDeferred(new ScheduledCommand() {

    @Override
    public void execute() {
        myTextBox.setFocus();
    }
});

在此示例中,焦点不会在浏览器完成对话框的呈现之前设置,因此您告诉程序等待直到浏览器准备就绪。

如果希望在指定的时间段后执行某些操作,请使用 Timer 。例如:

 notificationPanel.show();
 Timer timer = new Timer() {
     @Override
     public void run() {
         notificationPanel.hide();
     }
 };
 timer.schedule(10000);

该代码将显示notificationPanel,然后在10秒后将其隐藏。

2020-09-08