我有一个名为showNotification的方法,它显示通知
public static void showNotification(UI ui, String notificationMessage) {
Notification notification = new Notification(notificationMessage);
notification.setStyleName("custom-notification");
notification.show(ui.getPage());
}我有一个返回CompletableFuture的服务。在我的控制器中我创建了方法
@Override
public CompletableFuture<?> startProcessing() {
return processorService.start();
}单击按钮,如果start成功,我想显示通知。我的buttonClick事件如下所示
event -> {
controller.startProcessing()
.thenAccept(aVoid -> UI.getCurrent().access(() -> {
showNotification(getUI(), "Started processing");
})
).handle((aVoid, throwable) -> {
showNotification(getUI(), "Failed to start processing");
return aVoid;
});
}问题是,直到我调用另一个事件-例如单击另一个按钮-它才会显示通知。
有什么问题吗?
发布于 2018-06-04 18:33:35
您需要将@Push添加到您的UI子类,以使浏览器打开与服务器的双向连接。否则,只有浏览器才能启动通信,并且只有在有新事件要发送到服务器时才会这样做。
https://stackoverflow.com/questions/50678342
复制相似问题