java - Vaadin 应用程序 : handle application closing event

标签 java portlet vaadin

我有一个包含不同可用 portlet 的门户。我的 Activity portlet 有一些后台线程,当卸载 portlet 时(例如,选择另一个 portlet 时),必须停止这些线程。 Activity portlet 属于 GenericPortletApplication 类,它实现以下接口(interface):

import com.vaadin.Application;
import com.vaadin.terminal.gwt.server.PortletApplicationContext2;

public abstract class GenericPortletApplication extends Application implements PortletApplicationContext2.PortletListener {
...
}

我想知道我可以重载哪种方法,以确保我能够正确处理应用程序的关闭。我已经尝试过 destroy 但这没有实现。

接口(interface)定义herehere但我找不到卸载应用程序时调用的方法。

最佳答案

我已经成功实现了我认为您想要做的事情。这是我使用的代码:

JavaScript.getCurrent().addFunction("closeMyApplication", new JavaScriptFunction() {
                     @Override
                     public void call(JSONArray arguments)
                             throws JSONException {
                         // call close method
                         close();                        
                     }


              });

        Page.getCurrent().getJavaScript().execute("window.onbeforeunload = function (e) { var e = e || window.event; closeMyApplication(); return; };");

关于java - Vaadin 应用程序 : handle application closing event,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10733166/

相关文章:

java - 在liferay portlet和servlet之间共享Session

java - WAR 安装错误的编码解决方案(Websphere Portal 6.0)?

java - 使用简单对象时阻塞 Web 应用程序。等待

java - 瓦丁 : CustomLayout don't generate <div> content

java 。如何从 URL 获取所有参数,但仅此而已

java - 在 Java 应用程序中存储大量类似字典的数据

java - OSGi/BND : How to exclude classes from bundle generation?

java - 查找包含空(非空定义)字符串的下一个位置的索引

java - Vaadin portlet 模式更改

java - OpenJDK 11 java.lang.ClassCastException : class sun. font.CompositeFont 无法转换为类 sun.font.PhysicalFont