2008-10-30 14 views
5

Nehmen wir an, ich habe ein Applet innerhalb einer Seite in einem Browser ausgeführt. Was passiert, wenn der Browser vom Benutzer geschlossen wird?Was passiert mit einem Applet, wenn der Browser geschlossen wird?

Wird das Applet benachrichtigt, damit es auf seiner Seite eine bestimmte Aktion ausführen kann (Schließen von Verbindungen, die für einen Server geöffnet sind, Löschen statischer Variablen, ...)?

Ich nehme auch an, dass das gleiche Verhalten für eine Seitenaktualisierung oder Seitennavigation gelten würde (anstelle des Schließens des Browsers). Der Browser bleibt geöffnet, aber das Applet ist weg. Wenn Sie den Browser schließen, schließen Sie auch die JVM, daher bin ich mir an dieser Stelle nicht sicher.

Danke, JB

Antwort

2

Ja, die Methode destroy() sollte, bevor das die Objekt leert Browser aufgerufen werden.

destroy() ist die letzte von vier "Lebenszyklus Methoden" der Java-Applets (die andere sind init(), start() und stop()). Sie werden tatsächlich zu unterschiedlichen Zeiten in Abhängigkeit von Ihrem Browser und virtuelle Maschine aufgerufen. Wenn Sie genau wissen möchten, wann jeder aufgerufen wird, implementieren Sie jede Methode in Ihrem Applet und System.out ein Feedback.

Idealerweise sollte destroy() von der Umgebung aufgerufen werden und sollte nur einmal aufgerufen werden. Wenn es so aussieht, als ob "destroy()" nicht aufgerufen wird, könnten Sie eine public finalize() -Methode deklarieren, die "destroy" aufruft. Sie könnten auch versuchen, den Befehl destroy() von javascript aufzurufen, wenn das Fensterobjekt entladen wird, aber stellen Sie sicher, dass Sie nicht unnötigerweise den Befehl destroy() aufrufen.

1

Die meisten Male zerstören werden aufgerufen, aber es nicht genug Zeit, um die erforderlichen Aufgaben im Falle des Schließens des Fensters zu tun.

Er erhält genug Zeit beim Aktualisieren, Navigieren mit Backword < - und Forward ->

Verwandte Themen