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

JB *_*aux 5 browser applet jvm

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

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

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

谢谢,JB

kep*_*aro 2

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

destroy()是 Java applet 的四个“生命周期方法”中的最后一个(其他是init()start()stop())。实际上,根据您的浏览器虚拟机,它们会在不同的时间被调用。如果您想确切地知道每个方法何时被调用,请在您的小程序中实现每个方法,并 System.out 一些反馈。

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

public void finalize () {
    destroy();
}
Run Code Online (Sandbox Code Playgroud)