The javadoc http://download.oracle.com/javase/6/docs/api/java/applet/Applet.html and tutorial http://download.oracle.com/javase/tutorial/deployment/applet/appletMethods.html有关于四种小程序生命周期方法的信息(init() -> start() -> stop() -> destroy()
)。但他们大多用抽象语言交谈。
我正在寻找的是如果我将代码放入其中会产生影响的具体示例init
vs start
,类似地对于destroy
vs stop
。到目前为止我发现的唯一的东西是在教程的描述中destroy
方法。它说:
注意:保留
destroy 方法尽可能短,
因为不能保证
这个方法将完全
被执行。 Java虚拟机
可能会在长时间销毁之前退出
方法已完成。
(我有点震惊,上面的内容不在 javadoc 中。)
Edit:更具体地说:任何人都可以提供一个浏览器 + JVM 组合,在执行某些特定操作(切换选项卡、点击“后退”按钮等)时,调用stop
但不是destroy
(or start
但不是init
)?
init
and destroy
分别在小程序加载或卸载时调用。当浏览器导航、切换选项卡等时,浏览器可以加载小程序并停止它,但不会销毁它。
start
and stop
在上述情况下,用于暂停和恢复小程序(当小程序变为或不再显示在页面上时)。
我不知道是否有浏览器确实保持小程序加载,所以这可能并不重要。但据我所知,一般规则是:
-
init
应该让小程序准备好运行,但实际上并没有启动它。从以下位置返回后,小程序应处于“停止”状态init
。 (停止的小程序应该使用尽可能少的资源,并且不使用 CPU。)
-
start
应该启动小程序运行(启动线程等)。它通常不会读取参数并重新加载图像等等,因为这应该在init
.
-
stop
应该撤消什么start
确实...将小程序返回到“停止”状态,但使其能够start
再次。它不应该撤消任何init
的工作,因为如果功能被正确分离,这将使小程序无法启动。
-
destroy
应该在卸载小程序之前进行最后的清理。它基本上撤消了init
。它不应该停止小程序;那是stop
的工作,并且之前应该已经完成destroy
叫做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)