9.2.2 Applet的生命周期

9.2.2 Applet的生命周期

程序运行从开始到结束的过程称为程序的生命周期。独立应用程序的生命周期从main()方法开始,直到运行结束。

而Applet应用程序的生命周期与浏览器息息相关。事实上,作为浏览器的一部分,Applet程序如何运行,何时结束都由浏览器控制,Applet对象作为浏览器窗口中运行的一个线程。

• 当打开浏览器窗口时,创建并初始化其中的Applet对象。

• 当显示Applet时,启动Applet线程运行。

• 当不显示Applet时,停止Applet线程运行。

• 当关闭浏览器窗口时,销毁Applet对象。

与此相应,Applet类中声明了与生命周期相关的4个方法:init()、start()、stop()、detroy(),如图9-4所示。

img400

图9-4 Applet的生命周期

你所设计的init()、start()、stop()、detroy()方法会覆盖Applet类中的方法。

init():这是被调用的第一个方法。是初始化变量的地方。这个方法在小应用程序运行期间仅被调用一次。

start():这是在init()之后被调用。它也在小应用程序被终止后重新启动时调用。

注意:init()仅在小应用程序第一次被装载时调用一次,而start()却在每一次小应用程序的HTML文档被显示在屏幕上时都被调用。因此,如果用户离开一个网页之后重新进入时,小应用程序就会从start()开始重新执行。

stop():当Web浏览器离开包含小应用程序的HTML文件时,stop()方法就被调用,如在浏览器中转到另一个页面时。当stop()被调用时,小应用程序很可能在运行。应该使用stop()来挂起一些在小应用程序不可见时不需要运行的线程。当用户回到此页面时,就能重新启动它们。

destroy():当环境决定了小应用程序需要完全从内存中移去时,destroy()方法被调用。在这时候,应该释放任何小应用程序可能用到的资源。stop()方法总是在destroy()之前被调用。