所以我做的是这样的:
public class SecureActivity extends AbstractActivity {
public void start(AcceptsOneWidget container, EventBus eventBus) {
if (!_app.isUserLoggedIn()) {
_app.goTo(new LoginPlace(_app.getCurrentPlaceToken()))
} else {
// do cool secure stuff
}
}
}
但我看到的行为是我的浏览器的历史记录是原始网址(来自原始请求),然后是登录:redirectPlace,然后是原始网址。
看起来我需要在start()方法完成后进行重定向。有没有一种正确的方法来延迟/委托goTo在start方法之外发生?
感谢。
答案 0 :(得分:4)
这应该足够了:
Scheduler.get().scheduleFinally(new ScheduledCommand() {
@Override
public void execute() {
_app.goTo(new LoginPlace(_app.getCurrentPlaceToken());
}
}