浏览器关闭时applet会发生什么?

时间:2008-10-30 09:14:22

标签: browser applet jvm

假设我在浏览器的页面中运行了一个小程序。 当用户关闭浏览器时会发生什么?

小程序是否已通知,以便它可以执行某种关闭操作(关闭连接打开服务器,清除静态变量,......)?

此外,我假设相同的行为适用于页面刷新或页面导航(而不是浏览器关闭)。浏览器仍然打开,但applet消失了。虽然关闭浏览器时也关闭了JVM,所以我现在还不确定。

谢谢, JB

2 个答案:

答案 0 :(得分:2)

是的,应该在浏览器卸载对象之前调用 destroy()方法

destroy()是Java小程序的四个“生命周期方法”中的最后一个(其他方法是 init()开始()停止())。它们实际上是在不同时间调用的,具体取决于您的浏览器虚拟机。如果您想确切知道每个调用的时间,请在applet中实现每个方法,并在System.out中实现一些反馈。

理想情况下,destroy()应该被环境 调用,并且只应调用一次。如果看起来没有调用destroy(),你可以声明一个调用destroy的public finalize()方法。当窗口对象卸载时,你也可以尝试从javascript调用destroy(),但是再次确保你没有不必要地调用destroy()。

public void finalize () {
    destroy();
}

答案 1 :(得分:1)

大多数时候会调用destroy,但是在关闭窗口时没有足够的时间来完成所需的任务。

在刷新时,有足够的时间,使用Backword< - 和前进 - >

进行导航