Life Time

last modified: Feb./14th/2003; Since: Jan./29th/2002

アプレットはブラウザ上で動作する小さな Java アプリケーション・プログラです。ブラウザが当該ページを読み込んでから、最小化されたり非アクティブになったり、別のページに移動したり、終了したりすることで、アプレットの動作は自動的に変更されます。具体的には、タイミングに応じた特定のメソッドが自動的に実行されます。これらは java.applet.Applet クラスで定義されていますが、目的に応じて自分で作ったクラス内でオーバーライドします。

基本的なライフタイムは次の四つです:

init()
ブラウザが最初に当該ページを読み込んだときに自動的に起動します。アプレットの初期化の役割を果たします。
stop()
アクティブであったアプレットのページを開いているブラウザが、最小化(アイコン化)、非アクティブ化したり、別のページに移動したりすることで自動的に実行されます。アプレットの実行を一時的に停止します。
start()
stop() 状態だったアプレットが再開されるときに自動的に実行されます。
destroy()
起動したアプレットが完全にメモリ上から開放されるときに自動的に実行されます。その際、まず stop() メソッドが実行されてから destroy() メソッドが実行されます。

どのメソッドもオーバーライドされますが、 destroy() メソッドはあまりオーバーライドされません。終了作業の殆どは stop() メソッドで十分に実装され得るからです。実際に、殆どのアプレットでは、明示的に終了するのではなく、一旦別ページに移動したユーザが戻ってこないのでガーベッジ・コレクタによってメモリ上から開放されることが殆どです。 destroy() メソッドでだけ実装したい処理は殆ど考えられません。

また、そのためかどうか分かりませんが、別ページへの移動によって destroy() メソッドが実行されるブラウザもあります。この場合は、期待していた動作と異なるケースが発生しますので、クロスブラウザに注意が必要です。


次にライフタイムの移り行きを実装で試すサンプルを紹介します。



Copyright © 2001, 2003 SUGAI, Manabu. All Rights Reserved.