计时器在GWT中不工作,
当我这边的执行完成时,我正在重定向其他网页。我想向我的用户显示一条消息,我们正在“在%d秒内重定向”,因为我使用了Timer类,但它仍然会立即重定向 代码如下计时器在GWT中不工作,,gwt,timer,Gwt,Timer,当我这边的执行完成时,我正在重定向其他网页。我想向我的用户显示一条消息,我们正在“在%d秒内重定向”,因为我使用了Timer类,但它仍然会立即重定向 代码如下 public void redirect(){ hanldeWait() ; Window.Location.assign(Url) ; } private void hanldeWait(){ Timer timer = new Timer() { int i = 5 ;
public void redirect(){
hanldeWait() ;
Window.Location.assign(Url) ;
}
private void hanldeWait(){
Timer timer = new Timer() {
int i = 5 ;
public void run() {
if(i < 0){
errorMessage.setVisible(false);
cancel() ;
}else{
i-- ;
String redirectionMessage = "Redirecting in %d seconds" ;
String displayMessage = redirectionMessage ;
displayMessage = format(redirectionMessage, (Integer)i) ;
errorMessage.setText(displayMessage);
errorMessage.setVisible(true);
}
}
};
timer.scheduleRepeating(5000) ;
}
public void redirect(){
hanldeWait();
Window.Location.assign(Url);
}
私有void hanldeWait(){
定时器=新定时器(){
int i=5;
公开募捐{
if(i<0){
errorMessage.setVisible(错误);
取消();
}否则{
我--;
String redirectionMessage=“在%d秒内重定向”;
String displayMessage=重定向消息;
displayMessage=格式(重定向消息,(整数)i);
errorMessage.setText(显示消息);
errorMessage.setVisible(真);
}
}
};
定时重复(5000);
}
如果我在这里做错了什么。您的代码告诉浏览器立即重定向,不要延迟 如果要在延迟后重定向,则
Window.Location.assign(Url) ;
应该在计时器的
run
方法中调用。scheduleRepeating(5000)
应该是schedule(5000)
,如果您只想让它运行一次。不,我想重复,直到我达到0。但是您已经告诉它通过this.schedule(1000)
再次运行。此行取消了scheduleRepeating(5000)。谢谢Andrei,更正了代码。。