我有一个包含不同可用 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
但这没有实现。
最佳答案
我已经成功实现了我认为您想要做的事情。这是我使用的代码:
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/