2009-01-26 5 views

Antwort

4

Soweit ich weiß, gibt es in Java keine Möglichkeit, das Herunterfahren des Systems oder das Abmelden von Ereignissen abzufangen.

Sie können jedoch abfangen, wenn die JVM mit adding a shutdown hook endet.

AWTs WindowAdapter verfügt auch über ein windowClosing-Ereignis, das Sie überschreiben und in einem Fenster verankern können, das Sie überwachen möchten. Swing erbt dies; Ich glaube SWT macht das auch. Beachten Sie, dass Sie das Fenster manuell löschen müssen, wenn Sie dieses Ereignis überschreiben!

Ich glaube, dass MS Windows diese Ereignisse auslösen wird, wie es schließt. Ich glaube, ein SIGTERM unter Linux/UNIX macht das gleiche, obwohl Linux kurz danach eine App SIGKILL, wenn dies während des Herunterfahrens ist.

+0

Vorsicht, Window des AWT wird auf das Fenster nur auf Ereignisse Haken. Wenn die Umgebung durch Herunterfahren beendet wird, werden die Ereignisse windowClosing oder windowClosed nicht ausgelöst! – parasietje

+0

Es scheint, dass Linux Shutdown Hooks beim Abmelden/Herunterfahren nicht ausführt. Ich untersuche (https://forum.peppermintos.com/index.php/topic.4832.0.html). –

0

Dies beantwortet die Frage nicht, sondern adressiert einen Teil davon.

In einer Unix-GUI-Sitzung halte ich den richtigen Weg, um das Abmeldeereignis zu behandeln, das Dokument in einer temporären Datei zu speichern und die Informationen im Sitzungszustand zu speichern. Während der Wiederherstellung der Sitzung kann das Programm die temporäre Datei erneut laden und dort weitermachen, wo sie unterbrochen wurde. Keine Notwendigkeit, den Benutzer nach dem Speichern zu fragen oder nicht.

Ich wünschte nur mehr Software hat transparente Sitzung speichern und wiederherstellen. Zu viele Programme öffnen sich mit leeren Dokumentfenstern, weil das verwendete GUI-Framework so viel tut, aber der Rest der Arbeit wurde nicht ausgeführt, um tatsächlich irgendeinen bedeutungsvollen Programmzustand zu behandeln.

1

Ich denke, dass Runtime.getRuntime(). AddShutdownHook sollte die Funktionalität, die Sie benötigen.

Verwandte Themen